TF-3759 Update style popup context menu for profile setting menu

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-06-13 20:06:15 +07:00
committed by Dat H. Pham
parent b90d84741a
commit 2fdab039da
19 changed files with 479 additions and 279 deletions
@@ -0,0 +1,30 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/features/base/model/popup_menu_item_action.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/profile_setting/profile_setting_action_type.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class PopupMenuItemProfileSettingTypeAction
extends PopupMenuItemActionRequiredIcon<ProfileSettingActionType> {
final AppLocalizations appLocalizations;
final ImagePaths imagePaths;
PopupMenuItemProfileSettingTypeAction(
super.action,
this.appLocalizations,
this.imagePaths,
);
@override
String get actionIcon => action.getIcon(imagePaths);
@override
String get actionName => action.getTitle(appLocalizations);
@override
Color get actionIconColor => AppColor.gray686E76;
@override
EdgeInsetsGeometry get itemPadding => const EdgeInsets.symmetric(horizontal: 16);
}
@@ -0,0 +1,26 @@
import 'package:core/presentation/resources/image_paths.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
enum ProfileSettingActionType {
manageAccount,
signOut;
String getTitle(AppLocalizations appLocalizations) {
switch(this) {
case ProfileSettingActionType.manageAccount:
return appLocalizations.manage_account;
case ProfileSettingActionType.signOut:
return appLocalizations.sign_out;
}
}
String getIcon(ImagePaths imagePaths) {
switch(this) {
case ProfileSettingActionType.manageAccount:
return imagePaths.icSetting;
case ProfileSettingActionType.signOut:
return imagePaths.icLogout;
}
}
}