From f473fa1bff6f156ec3477b7a0717835bf3a353dc Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 25 Aug 2022 17:56:03 +0700 Subject: [PATCH] TF-852 Fix align center title in UserInformationWidget --- .../mailbox/presentation/mailbox_view.dart | 12 ++++---- .../presentation/mailbox_view_web.dart | 12 ++++---- .../user_information_widget_builder.dart | 30 +++++++++---------- .../settings/settings_first_level_view.dart | 10 +++---- 4 files changed, 28 insertions(+), 36 deletions(-) diff --git a/lib/features/mailbox/presentation/mailbox_view.dart b/lib/features/mailbox/presentation/mailbox_view.dart index b4cc4486a..dadf88e6b 100644 --- a/lib/features/mailbox/presentation/mailbox_view.dart +++ b/lib/features/mailbox/presentation/mailbox_view.dart @@ -171,13 +171,11 @@ class MailboxView extends GetWidget { padding: EdgeInsets.only( left: _responsiveUtils.isLandscapeMobile(context) ? 0 : 16, right: 16), - child: (UserInformationWidgetBuilder( - _imagePaths, - context, - controller.mailboxDashBoardController.userProfile.value, - subtitle: AppLocalizations.of(context).manage_account) - ..addOnSubtitleClick(() => controller.mailboxDashBoardController.goToSettings())) - .build()), + child: UserInformationWidgetBuilder( + _imagePaths, + controller.mailboxDashBoardController.userProfile.value, + subtitle: AppLocalizations.of(context).manage_account, + onSubtitleClick: () => controller.mailboxDashBoardController.goToSettings())), const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2) ]); } diff --git a/lib/features/mailbox/presentation/mailbox_view_web.dart b/lib/features/mailbox/presentation/mailbox_view_web.dart index 463deaa05..785b0952a 100644 --- a/lib/features/mailbox/presentation/mailbox_view_web.dart +++ b/lib/features/mailbox/presentation/mailbox_view_web.dart @@ -198,13 +198,11 @@ class MailboxView extends GetWidget with AppLoaderMixin, Popu child: Column(children: [ Padding( padding: const EdgeInsets.only(left: 16, bottom: 10), - child: (UserInformationWidgetBuilder( - _imagePaths, - context, - controller.mailboxDashBoardController.userProfile.value, - subtitle: AppLocalizations.of(context).manage_account) - ..addOnSubtitleClick(() => controller.mailboxDashBoardController.goToSettings())) - .build()), + child: UserInformationWidgetBuilder( + _imagePaths, + controller.mailboxDashBoardController.userProfile.value, + subtitle: AppLocalizations.of(context).manage_account, + onSubtitleClick: () => controller.mailboxDashBoardController.goToSettings())), const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2) ]), ); diff --git a/lib/features/mailbox/presentation/widgets/user_information_widget_builder.dart b/lib/features/mailbox/presentation/widgets/user_information_widget_builder.dart index 6ea65c40e..893884f49 100644 --- a/lib/features/mailbox/presentation/widgets/user_information_widget_builder.dart +++ b/lib/features/mailbox/presentation/widgets/user_information_widget_builder.dart @@ -9,28 +9,26 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; typedef OnSubtitleClick = void Function(); -class UserInformationWidgetBuilder { +class UserInformationWidgetBuilder extends StatelessWidget { final ImagePaths _imagePaths; final UserProfile? _userProfile; - final BuildContext _context; final String? subtitle; + final EdgeInsets? titlePadding; + final OnSubtitleClick? onSubtitleClick; - OnSubtitleClick? _onSubtitleClick; - - UserInformationWidgetBuilder( + const UserInformationWidgetBuilder( this._imagePaths, - this._context, this._userProfile, { - this.subtitle + Key? key, + this.subtitle, + this.titlePadding, + this.onSubtitleClick, } - ); + ) : super(key: key); - void addOnSubtitleClick(OnSubtitleClick onLogoutActionClick) { - _onSubtitleClick = onLogoutActionClick; - } - - Widget build() { + @override + Widget build(BuildContext context) { return Container( key: const Key('user_information_widget'), color: Colors.transparent, @@ -51,7 +49,7 @@ class UserInformationWidgetBuilder { crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - padding: const EdgeInsets.only(left: 16, top: 10), + padding: titlePadding ?? const EdgeInsets.only(left: 16, top: 10), child: Text( _userProfile != null ? '${_userProfile?.email}' : '', maxLines: 1, @@ -68,9 +66,9 @@ class UserInformationWidgetBuilder { child: Align( alignment: Alignment.centerLeft, child: TextButton( - onPressed: () => _onSubtitleClick?.call(), + onPressed: () => onSubtitleClick?.call(), child: Text( - AppLocalizations.of(_context).manage_account, + AppLocalizations.of(context).manage_account, style: const TextStyle(fontSize: 14, color: AppColor.colorTextButton), ), ) diff --git a/lib/features/manage_account/presentation/menu/settings/settings_first_level_view.dart b/lib/features/manage_account/presentation/menu/settings/settings_first_level_view.dart index de3a56e5c..39f83080b 100644 --- a/lib/features/manage_account/presentation/menu/settings/settings_first_level_view.dart +++ b/lib/features/manage_account/presentation/menu/settings/settings_first_level_view.dart @@ -21,12 +21,10 @@ class SettingsFirstLevelView extends GetWidget { return Column(children: [ Obx(() => Padding( padding: SettingsUtils.getPaddingInFirstLevel(context, _responsiveUtils), - child: (UserInformationWidgetBuilder( - _imagePaths, - context, - controller.manageAccountDashboardController.userProfile.value) - ..addOnSubtitleClick(() => {})) - .build() + child: UserInformationWidgetBuilder( + _imagePaths, + controller.manageAccountDashboardController.userProfile.value, + titlePadding: const EdgeInsets.only(left: 16)) )), Divider( color: AppColor.colorDividerComposer,