TF-4229 Implement search by label filter in mobile

This commit is contained in:
dab246
2026-01-05 11:25:29 +07:00
committed by Dat H. Pham
parent 96f03eaa40
commit a35b263dca
11 changed files with 362 additions and 71 deletions
@@ -0,0 +1,34 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/animation.dart';
import 'package:labels/labels.dart';
import 'package:tmail_ui_user/features/base/widget/context_menu/context_menu_item_action.dart';
class ContextItemLabelTypeAction
extends ContextMenuItemActionRequiredSelectedIcon<Label> {
final ImagePaths imagePaths;
ContextItemLabelTypeAction(
super.action,
super.selectedAction,
this.imagePaths,
);
bool get isSelected => action.id == selectedAction?.id;
@override
String get actionName => action.safeDisplayName;
@override
String get selectedIcon => isSelected
? imagePaths.icCheckboxSelected
: imagePaths.icCheckboxUnselected;
@override
Color get selectedIconColor => isSelected
? AppColor.primaryMain
: AppColor.gray424244.withValues(alpha: 0.72);
@override
bool get isArrangeRTL => false;
}
@@ -0,0 +1,35 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/animation.dart';
import 'package:labels/extensions/label_extension.dart';
import 'package:labels/model/label.dart';
import 'package:tmail_ui_user/features/base/model/popup_menu_item_action.dart';
class PopupMenuItemLabelTypeAction
extends PopupMenuItemActionRequiredSelectedIcon<Label> {
final ImagePaths imagePaths;
PopupMenuItemLabelTypeAction(
super.action,
super.selectedAction,
this.imagePaths,
);
bool get isSelected => action.id == selectedAction?.id;
@override
String get actionName => action.safeDisplayName;
@override
String get selectedIcon => isSelected
? imagePaths.icCheckboxSelected
: imagePaths.icCheckboxUnselected;
@override
Color get selectedIconColor => isSelected
? AppColor.primaryMain
: AppColor.gray424244.withValues(alpha: 0.72);
@override
bool get isArrangeRTL => false;
}