TF-852 Fix align center title in UserInformationWidget

This commit is contained in:
dab246
2022-08-25 17:56:03 +07:00
committed by Dat H. Pham
parent 098fd1bd9e
commit f473fa1bff
4 changed files with 28 additions and 36 deletions
@@ -171,13 +171,11 @@ class MailboxView extends GetWidget<MailboxController> {
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: _responsiveUtils.isLandscapeMobile(context) ? 0 : 16, left: _responsiveUtils.isLandscapeMobile(context) ? 0 : 16,
right: 16), right: 16),
child: (UserInformationWidgetBuilder( child: UserInformationWidgetBuilder(
_imagePaths, _imagePaths,
context, controller.mailboxDashBoardController.userProfile.value,
controller.mailboxDashBoardController.userProfile.value, subtitle: AppLocalizations.of(context).manage_account,
subtitle: AppLocalizations.of(context).manage_account) onSubtitleClick: () => controller.mailboxDashBoardController.goToSettings())),
..addOnSubtitleClick(() => controller.mailboxDashBoardController.goToSettings()))
.build()),
const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2) const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2)
]); ]);
} }
@@ -198,13 +198,11 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
child: Column(children: [ child: Column(children: [
Padding( Padding(
padding: const EdgeInsets.only(left: 16, bottom: 10), padding: const EdgeInsets.only(left: 16, bottom: 10),
child: (UserInformationWidgetBuilder( child: UserInformationWidgetBuilder(
_imagePaths, _imagePaths,
context, controller.mailboxDashBoardController.userProfile.value,
controller.mailboxDashBoardController.userProfile.value, subtitle: AppLocalizations.of(context).manage_account,
subtitle: AppLocalizations.of(context).manage_account) onSubtitleClick: () => controller.mailboxDashBoardController.goToSettings())),
..addOnSubtitleClick(() => controller.mailboxDashBoardController.goToSettings()))
.build()),
const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2) const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2)
]), ]),
); );
@@ -9,28 +9,26 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
typedef OnSubtitleClick = void Function(); typedef OnSubtitleClick = void Function();
class UserInformationWidgetBuilder { class UserInformationWidgetBuilder extends StatelessWidget {
final ImagePaths _imagePaths; final ImagePaths _imagePaths;
final UserProfile? _userProfile; final UserProfile? _userProfile;
final BuildContext _context;
final String? subtitle; final String? subtitle;
final EdgeInsets? titlePadding;
final OnSubtitleClick? onSubtitleClick;
OnSubtitleClick? _onSubtitleClick; const UserInformationWidgetBuilder(
UserInformationWidgetBuilder(
this._imagePaths, this._imagePaths,
this._context,
this._userProfile, this._userProfile,
{ {
this.subtitle Key? key,
this.subtitle,
this.titlePadding,
this.onSubtitleClick,
} }
); ) : super(key: key);
void addOnSubtitleClick(OnSubtitleClick onLogoutActionClick) { @override
_onSubtitleClick = onLogoutActionClick; Widget build(BuildContext context) {
}
Widget build() {
return Container( return Container(
key: const Key('user_information_widget'), key: const Key('user_information_widget'),
color: Colors.transparent, color: Colors.transparent,
@@ -51,7 +49,7 @@ class UserInformationWidgetBuilder {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.only(left: 16, top: 10), padding: titlePadding ?? const EdgeInsets.only(left: 16, top: 10),
child: Text( child: Text(
_userProfile != null ? '${_userProfile?.email}' : '', _userProfile != null ? '${_userProfile?.email}' : '',
maxLines: 1, maxLines: 1,
@@ -68,9 +66,9 @@ class UserInformationWidgetBuilder {
child: Align( child: Align(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: TextButton( child: TextButton(
onPressed: () => _onSubtitleClick?.call(), onPressed: () => onSubtitleClick?.call(),
child: Text( child: Text(
AppLocalizations.of(_context).manage_account, AppLocalizations.of(context).manage_account,
style: const TextStyle(fontSize: 14, color: AppColor.colorTextButton), style: const TextStyle(fontSize: 14, color: AppColor.colorTextButton),
), ),
) )
@@ -21,12 +21,10 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
return Column(children: [ return Column(children: [
Obx(() => Padding( Obx(() => Padding(
padding: SettingsUtils.getPaddingInFirstLevel(context, _responsiveUtils), padding: SettingsUtils.getPaddingInFirstLevel(context, _responsiveUtils),
child: (UserInformationWidgetBuilder( child: UserInformationWidgetBuilder(
_imagePaths, _imagePaths,
context, controller.manageAccountDashboardController.userProfile.value,
controller.manageAccountDashboardController.userProfile.value) titlePadding: const EdgeInsets.only(left: 16))
..addOnSubtitleClick(() => {}))
.build()
)), )),
Divider( Divider(
color: AppColor.colorDividerComposer, color: AppColor.colorDividerComposer,