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(
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)
]);
}
@@ -198,13 +198,11 @@ class MailboxView extends GetWidget<MailboxController> 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)
]),
);
@@ -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),
),
)
@@ -21,12 +21,10 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
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,