From 633b0c6ce571acf1369a58e5fdf2893e85bb9e4f Mon Sep 17 00:00:00 2001 From: jonas-martinez Date: Wed, 20 Apr 2022 10:10:39 +0200 Subject: [PATCH 1/2] feat: Add text align property to Text --- .../flutter_playground/lib/left_menu.dart | 2 + examples/flutter_playground/lib/main.dart | 3 ++ .../lib/pages/text_example.dart | 44 +++++++++++++++++++ lib/component/lenra_text.dart | 3 ++ test/component/lenra_text_test.dart | 2 + 5 files changed, 54 insertions(+) create mode 100644 examples/flutter_playground/lib/pages/text_example.dart diff --git a/examples/flutter_playground/lib/left_menu.dart b/examples/flutter_playground/lib/left_menu.dart index bf3a22e9..f9586e1a 100644 --- a/examples/flutter_playground/lib/left_menu.dart +++ b/examples/flutter_playground/lib/left_menu.dart @@ -21,6 +21,7 @@ class LeftMenu extends StatelessWidget { static const stackExample = "stackExample"; static const overlayEntryExample = "overlayEntryExample"; static const sliderExample = "sliderExample"; + static const textExample = "textExample"; @override Widget build(BuildContext context) { @@ -50,6 +51,7 @@ class LeftMenu extends StatelessWidget { createMenu(context, 'overlayEntry Example', overlayEntryExample), createMenu(context, 'OverlayEntry Examples', overlayEntryExample), createMenu(context, 'Slider Examples', sliderExample), + createMenu(context, 'Text Example', textExample), ], ); } diff --git a/examples/flutter_playground/lib/main.dart b/examples/flutter_playground/lib/main.dart index b1d83b23..5a22bfe1 100644 --- a/examples/flutter_playground/lib/main.dart +++ b/examples/flutter_playground/lib/main.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_playground/pages/text_example.dart'; import 'package:lenra_components/theme/lenra_theme.dart'; import 'package:lenra_components/theme/lenra_theme_data.dart'; @@ -93,6 +94,8 @@ class _MyAppState extends State { return const OverlayEntryExample(); case LeftMenu.sliderExample: return const SliderExample(); + case LeftMenu.textExample: + return const TextExample(); } return const Text("N/A"); } diff --git a/examples/flutter_playground/lib/pages/text_example.dart b/examples/flutter_playground/lib/pages/text_example.dart new file mode 100644 index 00000000..19be72d8 --- /dev/null +++ b/examples/flutter_playground/lib/pages/text_example.dart @@ -0,0 +1,44 @@ +import 'package:flutter/material.dart'; +import 'package:lenra_components/component/lenra_text.dart'; +import 'package:lenra_components/layout/lenra_flex.dart'; +import 'package:lenra_components/lenra_components.dart'; + +class TextExample extends StatefulWidget { + const TextExample({Key? key}) : super(key: key); + + @override + State createState() { + return _TextExampleState(); + } +} + +class _TextExampleState extends State { + @override + Widget build(BuildContext context) { + return Center( + child: LenraFlex( + direction: Axis.vertical, + spacing: 4, + children: [ + LenraText(text: "Basic"), + Container( + decoration: BoxDecoration(border: Border.all()), + width: 60, + child: LenraText( + text: "This is a centered text.", + textAlign: TextAlign.center, + ), + ), + Container( + decoration: BoxDecoration(border: Border.all()), + width: 100, + child: LenraText( + text: "This is a justified text. This is a justified text.", + textAlign: TextAlign.justify, + ), + ), + ], + ), + ); + } +} diff --git a/lib/component/lenra_text.dart b/lib/component/lenra_text.dart index d6b4d8ec..fa304299 100644 --- a/lib/component/lenra_text.dart +++ b/lib/component/lenra_text.dart @@ -7,6 +7,7 @@ class LenraText extends StatelessWidget { final Locale? locale; final String? semanticsLabel; final bool? spellOut; + final TextAlign? textAlign; const LenraText({ Key? key, @@ -16,6 +17,7 @@ class LenraText extends StatelessWidget { this.locale, this.semanticsLabel, this.spellOut, + this.textAlign, }) : super(key: key); TextSpan _toTextSpan(LenraText text) { @@ -40,6 +42,7 @@ class LenraText extends StatelessWidget { semanticsLabel: semanticsLabel, spellOut: spellOut, ), + textAlign: textAlign, ); } } diff --git a/test/component/lenra_text_test.dart b/test/component/lenra_text_test.dart index 00b69a3f..676db4fd 100644 --- a/test/component/lenra_text_test.dart +++ b/test/component/lenra_text_test.dart @@ -16,6 +16,7 @@ void main() { style: style, semanticsLabel: "bar", locale: const Locale('fr', 'FR'), + textAlign: TextAlign.center, ); expect(lenraText.text, "foo"); @@ -23,6 +24,7 @@ void main() { expect(lenraText.spellOut, false); expect(lenraText.semanticsLabel, "bar"); expect(lenraText.locale, const Locale('fr', 'FR')); + expect(lenraText.textAlign, TextAlign.center); }); testWidgets('Test LenraText children', (WidgetTester tester) async { From 76f6e096c215a2c40fa531aa2425007d87105152 Mon Sep 17 00:00:00 2001 From: jonas-martinez Date: Wed, 20 Apr 2022 10:28:39 +0200 Subject: [PATCH 2/2] Fix --- examples/flutter_playground/lib/main.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/flutter_playground/lib/main.dart b/examples/flutter_playground/lib/main.dart index 5a22bfe1..9ad19b98 100644 --- a/examples/flutter_playground/lib/main.dart +++ b/examples/flutter_playground/lib/main.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter_playground/pages/text_example.dart'; import 'package:lenra_components/theme/lenra_theme.dart'; import 'package:lenra_components/theme/lenra_theme_data.dart'; @@ -12,6 +11,7 @@ import 'pages/flex_test.dart'; import 'pages/overlay_entry_example.dart'; import 'pages/slider_example.dart'; import 'pages/stack_example.dart'; +import 'pages/text_example.dart'; import 'pages/toggle_example.dart'; import 'pages/button_example.dart'; import 'pages/checkbox_example.dart';