TF-4301 Replace LabelModalMixin with direct methods in LabelController
This commit is contained in:
@@ -45,10 +45,6 @@ extension HandleLabelActionTypeExtension on LabelController {
|
|||||||
required AccountId? accountId,
|
required AccountId? accountId,
|
||||||
required Label label,
|
required Label label,
|
||||||
}) async {
|
}) async {
|
||||||
if (createNewLabelInteractor == null || editLabelInteractor == null) {
|
|
||||||
_handleEditLabelFailure(EditLabelFailure(const InteractorNotInitialized()));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
final verifyNameInteractor = getBinding<VerifyNameInteractor>();
|
final verifyNameInteractor = getBinding<VerifyNameInteractor>();
|
||||||
if (verifyNameInteractor == null) {
|
if (verifyNameInteractor == null) {
|
||||||
_handleEditLabelFailure(EditLabelFailure(const InteractorNotInitialized()));
|
_handleEditLabelFailure(EditLabelFailure(const InteractorNotInitialized()));
|
||||||
|
|||||||
@@ -19,12 +19,13 @@ import 'package:tmail_ui_user/features/labels/domain/usecases/edit_label_interac
|
|||||||
import 'package:tmail_ui_user/features/labels/domain/usecases/get_all_label_interactor.dart';
|
import 'package:tmail_ui_user/features/labels/domain/usecases/get_all_label_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/labels/domain/usecases/get_label_changes_interactor.dart';
|
import 'package:tmail_ui_user/features/labels/domain/usecases/get_label_changes_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/labels/presentation/extensions/handle_label_action_type_extension.dart';
|
import 'package:tmail_ui_user/features/labels/presentation/extensions/handle_label_action_type_extension.dart';
|
||||||
|
import 'package:tmail_ui_user/features/labels/presentation/models/label_action_type.dart';
|
||||||
import 'package:tmail_ui_user/features/labels/presentation/extensions/handle_label_websocket_extension.dart';
|
import 'package:tmail_ui_user/features/labels/presentation/extensions/handle_label_websocket_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/labels/presentation/label_interactor_bindings.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/mixin/label_context_menu_mixin.dart';
|
||||||
import 'package:tmail_ui_user/features/labels/presentation/mixin/label_modal_mixin.dart';
|
|
||||||
import 'package:tmail_ui_user/features/labels/presentation/widgets/create_new_label_modal.dart';
|
import 'package:tmail_ui_user/features/labels/presentation/widgets/create_new_label_modal.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
|
||||||
|
import 'package:tmail_ui_user/main/routes/dialog_router.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/state/get_label_setting_state.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_label_setting_state_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_label_setting_state_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/push_notification/presentation/websocket/web_socket_queue_handler.dart';
|
import 'package:tmail_ui_user/features/push_notification/presentation/websocket/web_socket_queue_handler.dart';
|
||||||
@@ -33,9 +34,7 @@ import 'package:tmail_ui_user/main/exceptions/logic_exception.dart';
|
|||||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
|
|
||||||
class LabelController extends BaseController
|
class LabelController extends BaseController
|
||||||
with LabelContextMenuMixin,
|
with LabelContextMenuMixin {
|
||||||
LabelModalMixin {
|
|
||||||
@override
|
|
||||||
final RxList<Label> labels = <Label>[].obs;
|
final RxList<Label> labels = <Label>[].obs;
|
||||||
final labelListExpandMode = Rx(ExpandMode.EXPAND);
|
final labelListExpandMode = Rx(ExpandMode.EXPAND);
|
||||||
final isLabelSettingEnabled = RxBool(false);
|
final isLabelSettingEnabled = RxBool(false);
|
||||||
@@ -106,12 +105,6 @@ class LabelController extends BaseController
|
|||||||
_getLabelChangesInteractor = getBinding<GetLabelChangesInteractor>();
|
_getLabelChangesInteractor = getBinding<GetLabelChangesInteractor>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
CreateNewLabelInteractor get createNewLabelInteractor => _createNewLabelInteractor!;
|
|
||||||
|
|
||||||
@override
|
|
||||||
EditLabelInteractor get editLabelInteractor => _editLabelInteractor!;
|
|
||||||
|
|
||||||
DeleteALabelInteractor? get deleteALabelInteractor => _deleteALabelInteractor;
|
DeleteALabelInteractor? get deleteALabelInteractor => _deleteALabelInteractor;
|
||||||
|
|
||||||
GetLabelChangesInteractor? get getLabelChangesInteractor =>
|
GetLabelChangesInteractor? get getLabelChangesInteractor =>
|
||||||
@@ -151,6 +144,45 @@ class LabelController extends BaseController
|
|||||||
: ExpandMode.COLLAPSE;
|
: ExpandMode.COLLAPSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<dynamic> openCreateNewLabelModal({
|
||||||
|
required AccountId accountId,
|
||||||
|
required VerifyNameInteractor verifyNameInteractor,
|
||||||
|
}) async {
|
||||||
|
return DialogRouter().openDialogModal(
|
||||||
|
child: CreateNewLabelModal(
|
||||||
|
key: const Key('create_new_label_modal'),
|
||||||
|
labels: labels,
|
||||||
|
accountId: accountId,
|
||||||
|
imagePaths: imagePaths,
|
||||||
|
verifyNameInteractor: verifyNameInteractor,
|
||||||
|
createNewLabelInteractor: _createNewLabelInteractor!,
|
||||||
|
editLabelInteractor: _editLabelInteractor!,
|
||||||
|
),
|
||||||
|
dialogLabel: 'create-new-label-modal',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<dynamic> openEditLabelModal({
|
||||||
|
required Label selectedLabel,
|
||||||
|
required AccountId accountId,
|
||||||
|
required VerifyNameInteractor verifyNameInteractor,
|
||||||
|
}) async {
|
||||||
|
return DialogRouter().openDialogModal(
|
||||||
|
child: CreateNewLabelModal(
|
||||||
|
key: const Key('edit_label_modal'),
|
||||||
|
labels: labels,
|
||||||
|
accountId: accountId,
|
||||||
|
imagePaths: imagePaths,
|
||||||
|
selectedLabel: selectedLabel,
|
||||||
|
actionType: LabelActionType.edit,
|
||||||
|
verifyNameInteractor: verifyNameInteractor,
|
||||||
|
createNewLabelInteractor: _createNewLabelInteractor!,
|
||||||
|
editLabelInteractor: _editLabelInteractor!,
|
||||||
|
),
|
||||||
|
dialogLabel: 'edit-label-modal',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> onCreateALabelAction({
|
Future<void> onCreateALabelAction({
|
||||||
required AccountId? accountId,
|
required AccountId? accountId,
|
||||||
OnLabelActionCallback? onLabelActionCallback,
|
OnLabelActionCallback? onLabelActionCallback,
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
import 'package:core/presentation/resources/image_paths.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
|
||||||
import 'package:labels/model/label.dart';
|
|
||||||
import 'package:tmail_ui_user/features/labels/domain/usecases/create_new_label_interactor.dart';
|
|
||||||
import 'package:tmail_ui_user/features/labels/domain/usecases/edit_label_interactor.dart';
|
|
||||||
import 'package:tmail_ui_user/features/labels/presentation/models/label_action_type.dart';
|
|
||||||
import 'package:tmail_ui_user/features/labels/presentation/widgets/create_new_label_modal.dart';
|
|
||||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
|
|
||||||
import 'package:tmail_ui_user/main/routes/dialog_router.dart';
|
|
||||||
|
|
||||||
mixin LabelModalMixin {
|
|
||||||
List<Label> get labels;
|
|
||||||
ImagePaths get imagePaths;
|
|
||||||
CreateNewLabelInteractor get createNewLabelInteractor;
|
|
||||||
EditLabelInteractor get editLabelInteractor;
|
|
||||||
|
|
||||||
Future<dynamic> openCreateNewLabelModal({
|
|
||||||
required AccountId accountId,
|
|
||||||
required VerifyNameInteractor verifyNameInteractor,
|
|
||||||
}) async {
|
|
||||||
return DialogRouter().openDialogModal(
|
|
||||||
child: CreateNewLabelModal(
|
|
||||||
key: const Key('create_new_label_modal'),
|
|
||||||
labels: labels,
|
|
||||||
accountId: accountId,
|
|
||||||
imagePaths: imagePaths,
|
|
||||||
verifyNameInteractor: verifyNameInteractor,
|
|
||||||
createNewLabelInteractor: createNewLabelInteractor,
|
|
||||||
editLabelInteractor: editLabelInteractor,
|
|
||||||
),
|
|
||||||
dialogLabel: 'create-new-label-modal',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<dynamic> openEditLabelModal({
|
|
||||||
required Label selectedLabel,
|
|
||||||
required AccountId accountId,
|
|
||||||
required VerifyNameInteractor verifyNameInteractor,
|
|
||||||
}) async {
|
|
||||||
return DialogRouter().openDialogModal(
|
|
||||||
child: CreateNewLabelModal(
|
|
||||||
key: const Key('edit_label_modal'),
|
|
||||||
labels: labels,
|
|
||||||
accountId: accountId,
|
|
||||||
imagePaths: imagePaths,
|
|
||||||
selectedLabel: selectedLabel,
|
|
||||||
actionType: LabelActionType.edit,
|
|
||||||
verifyNameInteractor: verifyNameInteractor,
|
|
||||||
createNewLabelInteractor: createNewLabelInteractor,
|
|
||||||
editLabelInteractor: editLabelInteractor,
|
|
||||||
),
|
|
||||||
dialogLabel: 'edit-label-modal',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user