diff --git a/lib/features/labels/presentation/extensions/handle_label_action_type_extension.dart b/lib/features/labels/presentation/extensions/handle_label_action_type_extension.dart new file mode 100644 index 000000000..babb8ead0 --- /dev/null +++ b/lib/features/labels/presentation/extensions/handle_label_action_type_extension.dart @@ -0,0 +1,20 @@ +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:labels/model/label.dart'; +import 'package:tmail_ui_user/features/labels/presentation/label_controller.dart'; +import 'package:tmail_ui_user/features/labels/presentation/models/label_action_type.dart'; + +extension HandleLabelActionTypeExtension on LabelController { + void handleLabelActionType({ + required LabelActionType actionType, + required AccountId? accountId, + Label? label, + }) { + switch (actionType) { + case LabelActionType.create: + openCreateNewLabelModal(accountId); + break; + case LabelActionType.edit: + break; + } + } +} diff --git a/lib/features/labels/presentation/label_controller.dart b/lib/features/labels/presentation/label_controller.dart index 62be0b758..509636d6e 100644 --- a/lib/features/labels/presentation/label_controller.dart +++ b/lib/features/labels/presentation/label_controller.dart @@ -16,6 +16,7 @@ import 'package:tmail_ui_user/features/labels/domain/state/get_all_label_state.d import 'package:tmail_ui_user/features/labels/domain/usecases/create_new_label_interactor.dart'; import 'package:tmail_ui_user/features/labels/domain/usecases/get_all_label_interactor.dart'; import 'package:tmail_ui_user/features/labels/presentation/label_interactor_bindings.dart'; +import 'package:tmail_ui_user/features/labels/presentation/mixin/label_context_menu_mixin.dart'; import 'package:tmail_ui_user/features/labels/presentation/widgets/create_new_label_modal.dart'; import 'package:tmail_ui_user/features/manage_account/domain/state/get_label_setting_state.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_label_setting_state_interactor.dart'; @@ -24,7 +25,7 @@ import 'package:tmail_ui_user/main/exceptions/logic_exception.dart'; import 'package:tmail_ui_user/main/routes/dialog_router.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; -class LabelController extends BaseController { +class LabelController extends BaseController with LabelContextMenuMixin { final labels =