diff --git a/packages/flutter_markdown/CHANGELOG.md b/packages/flutter_markdown/CHANGELOG.md index 46eb6ff7b07..ee577fa8209 100644 --- a/packages/flutter_markdown/CHANGELOG.md +++ b/packages/flutter_markdown/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 0.7.3+1 +* Fixes issue with table column alignments not being respected. * Updates minimum supported SDK version to Flutter 3.19/Dart 3.3. ## 0.7.3 diff --git a/packages/flutter_markdown/lib/src/builder.dart b/packages/flutter_markdown/lib/src/builder.dart index 0706453a01d..0ec8833c42c 100644 --- a/packages/flutter_markdown/lib/src/builder.dart +++ b/packages/flutter_markdown/lib/src/builder.dart @@ -670,7 +670,15 @@ class MarkdownBuilder implements md.NodeVisitor { child: DefaultTextStyle( style: styleSheet.tableBody!, textAlign: textAlign, - child: Wrap(children: children as List), + child: Wrap( + alignment: switch (textAlign) { + TextAlign.left => WrapAlignment.start, + TextAlign.center => WrapAlignment.center, + TextAlign.right => WrapAlignment.end, + _ => WrapAlignment.start, + }, + children: children as List, + ), ), ), ); diff --git a/packages/flutter_markdown/pubspec.yaml b/packages/flutter_markdown/pubspec.yaml index ecfd21ea000..78a0ac36cfb 100644 --- a/packages/flutter_markdown/pubspec.yaml +++ b/packages/flutter_markdown/pubspec.yaml @@ -4,7 +4,7 @@ description: A Markdown renderer for Flutter. Create rich text output, formatted with simple Markdown tags. repository: https://github.com/flutter/packages/tree/main/packages/flutter_markdown issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+flutter_markdown%22 -version: 0.7.3 +version: 0.7.3+1 environment: sdk: ^3.3.0 diff --git a/packages/flutter_markdown/test/table_test.dart b/packages/flutter_markdown/test/table_test.dart index c67944ee0c3..9a7a4daf87e 100644 --- a/packages/flutter_markdown/test/table_test.dart +++ b/packages/flutter_markdown/test/table_test.dart @@ -63,6 +63,25 @@ void defineTests() { }, ); + testWidgets( + 'should work with table alignments', + (WidgetTester tester) async { + const String data = + '|Header 1|Header 2|Header 3|\n|:----|:----:|----:|\n|Col 1|Col 2|Col 3|'; + await tester.pumpWidget( + boilerplate( + const MarkdownBody(data: data), + ), + ); + + final Iterable wraps = tester.widgetList(find.byType(Wrap)); + + expect(wraps.first.alignment, WrapAlignment.start); + expect(wraps.elementAt(1).alignment, WrapAlignment.center); + expect(wraps.last.alignment, WrapAlignment.end); + }, + ); + testWidgets( 'should work with styling', (WidgetTester tester) async {