TF-3766 Fix Mark as important, Request read receipt not selected after touch in composer

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-06-17 09:23:43 +07:00
committed by Dat H. Pham
parent e648736819
commit 1645c03000
4 changed files with 54 additions and 2 deletions
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/widget/popup_menu/popup_menu_item_action_widget.dart';
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
import 'package:tmail_ui_user/features/composer/presentation/extensions/mark_as_important_extension.dart';
@@ -9,6 +10,13 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
extension HandleOpenContextMenuExtension on ComposerController {
void handleOpenContextMenu(BuildContext context, RelativeRect position) {
final listSelectedComposerActionType = [
if (isMarkAsImportant.isTrue)
ComposerActionType.markAsImportant,
if (hasRequestReadReceipt.isTrue)
ComposerActionType.requestReadReceipt,
];
final popupMenuItems = ComposerActionType.values.map((actionType) {
return PopupMenuItem(
padding: EdgeInsets.zero,
@@ -16,6 +24,7 @@ extension HandleOpenContextMenuExtension on ComposerController {
key: actionType.getContextMenuItemKey(),
menuAction: PopupMenuItemComposerTypeAction(
actionType,
listSelectedComposerActionType,
AppLocalizations.of(context),
imagePaths,
),
@@ -5,12 +5,14 @@ import 'package:tmail_ui_user/features/composer/presentation/model/composer_acti
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class PopupMenuItemComposerTypeAction
extends PopupMenuItemActionRequiredIcon<ComposerActionType> {
extends PopupMenuItemActionRequiredIconWithMultipleSelected<
ComposerActionType> {
final AppLocalizations appLocalizations;
final ImagePaths imagePaths;
PopupMenuItemComposerTypeAction(
super.action,
super.selectedActions,
this.appLocalizations,
this.imagePaths,
);
@@ -26,4 +28,7 @@ class PopupMenuItemComposerTypeAction
@override
Color get actionNameColor => action.getContextMenuTitleColor();
@override
String get selectedIcon => imagePaths.icFilterSelected;
}