TF-788 Add Click action to UserInformationWidget
This commit is contained in:
committed by
Dat H. Pham
parent
dc0c3ee445
commit
9283f88b24
@@ -171,9 +171,13 @@ 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(_imagePaths, context, controller.mailboxDashBoardController.userProfile.value)
|
child: (UserInformationWidgetBuilder(
|
||||||
..addOnLogoutAction(() => controller.mailboxDashBoardController.goToSettings()))
|
_imagePaths,
|
||||||
.build()),
|
context,
|
||||||
|
controller.mailboxDashBoardController.userProfile.value,
|
||||||
|
subtitle: AppLocalizations.of(context).manage_account)
|
||||||
|
..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,8 +198,12 @@ 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(_imagePaths, context, controller.mailboxDashBoardController.userProfile.value)
|
child: (UserInformationWidgetBuilder(
|
||||||
..addOnLogoutAction(() => controller.mailboxDashBoardController.goToSettings()))
|
_imagePaths,
|
||||||
|
context,
|
||||||
|
controller.mailboxDashBoardController.userProfile.value,
|
||||||
|
subtitle: AppLocalizations.of(context).manage_account)
|
||||||
|
..addOnSubtitleClick(() => controller.mailboxDashBoardController.goToSettings()))
|
||||||
.build()),
|
.build()),
|
||||||
const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2)
|
const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2)
|
||||||
]),
|
]),
|
||||||
|
|||||||
@@ -7,23 +7,27 @@ import 'package:get/get_utils/src/platform/platform.dart';
|
|||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
typedef OnLogoutActionClick = void Function();
|
typedef OnSubtitleClick = void Function();
|
||||||
|
|
||||||
class UserInformationWidgetBuilder {
|
class UserInformationWidgetBuilder {
|
||||||
final ImagePaths _imagePaths;
|
final ImagePaths _imagePaths;
|
||||||
final UserProfile? _userProfile;
|
final UserProfile? _userProfile;
|
||||||
final BuildContext _context;
|
final BuildContext _context;
|
||||||
|
final String? subtitle;
|
||||||
|
|
||||||
OnLogoutActionClick? _onLogoutActionClick;
|
OnSubtitleClick? _onSubtitleClick;
|
||||||
|
|
||||||
UserInformationWidgetBuilder(
|
UserInformationWidgetBuilder(
|
||||||
this._imagePaths,
|
this._imagePaths,
|
||||||
this._context,
|
this._context,
|
||||||
this._userProfile,
|
this._userProfile,
|
||||||
|
{
|
||||||
|
this.subtitle
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
void addOnLogoutAction(OnLogoutActionClick onLogoutActionClick) {
|
void addOnSubtitleClick(OnSubtitleClick onLogoutActionClick) {
|
||||||
_onLogoutActionClick = onLogoutActionClick;
|
_onSubtitleClick = onLogoutActionClick;
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget build() {
|
Widget build() {
|
||||||
@@ -55,23 +59,25 @@ class UserInformationWidgetBuilder {
|
|||||||
style: const TextStyle(fontSize: 17, color: AppColor.colorNameEmail, fontWeight: FontWeight.w600)
|
style: const TextStyle(fontSize: 17, color: AppColor.colorNameEmail, fontWeight: FontWeight.w600)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
Padding(
|
subtitle != null
|
||||||
padding: const EdgeInsets.only(left: 10),
|
? Padding(
|
||||||
child: Material(
|
padding: const EdgeInsets.only(left: 10),
|
||||||
borderRadius: BorderRadius.circular(20),
|
child: Material(
|
||||||
color: Colors.transparent,
|
borderRadius: BorderRadius.circular(20),
|
||||||
child: Align(
|
color: Colors.transparent,
|
||||||
|
child: Align(
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: TextButton(
|
child: TextButton(
|
||||||
onPressed: () => _onLogoutActionClick?.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),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
: const SizedBox.shrink()
|
||||||
])),
|
])),
|
||||||
if (!kIsWeb)
|
if (!kIsWeb)
|
||||||
Transform(
|
Transform(
|
||||||
|
|||||||
Reference in New Issue
Block a user