feat: Re-use AddLabelToEmailMixin for logic add label to email in EmailView
This commit is contained in:
@@ -35,7 +35,6 @@ import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/mark_read_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/send_receipt_to_sender_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/view_entire_message_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/add_a_label_to_an_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/calendar_event_accept_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/calendar_event_counter_accept_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/calendar_event_maybe_state.dart';
|
||||
@@ -47,10 +46,8 @@ import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_read_sta
|
||||
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_star_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/parse_calendar_event_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/print_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/remove_a_label_from_an_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/send_receipt_to_sender_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/unsubscribe_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/add_a_label_to_an_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/calendar_event_accept_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/calendar_event_counter_accept_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/calendar_event_reject_interactor.dart';
|
||||
@@ -61,7 +58,6 @@ import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/maybe_calendar_event_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/parse_calendar_event_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/print_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/remove_a_label_from_an_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/send_receipt_to_sender_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_opened_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
||||
@@ -121,8 +117,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
final GetAllIdentitiesInteractor _getAllIdentitiesInteractor;
|
||||
final StoreOpenedEmailInteractor _storeOpenedEmailInteractor;
|
||||
final PrintEmailInteractor _printEmailInteractor;
|
||||
final AddALabelToAnEmailInteractor addALabelToAnEmailInteractor;
|
||||
final RemoveALabelFromAnEmailInteractor removeALabelFromAnEmailInteractor;
|
||||
final EmailId? _currentEmailId;
|
||||
|
||||
CreateNewEmailRuleFilterInteractor? _createNewEmailRuleFilterInteractor;
|
||||
@@ -192,8 +186,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
this._markAsStarEmailInteractor,
|
||||
this._getAllIdentitiesInteractor,
|
||||
this._storeOpenedEmailInteractor,
|
||||
this.addALabelToAnEmailInteractor,
|
||||
this.removeALabelFromAnEmailInteractor,
|
||||
this._printEmailInteractor, {
|
||||
EmailId? currentEmailId,
|
||||
}) : _currentEmailId = currentEmailId;
|
||||
@@ -250,10 +242,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
_handlePrintEmailSuccess(success);
|
||||
} else if (success is CalendarEventReplySuccess) {
|
||||
calendarEventSuccess(success);
|
||||
} else if (success is AddALabelToAnEmailSuccess) {
|
||||
handleAddLabelToEmailSuccess(success);
|
||||
} else if (success is RemoveALabelFromAnEmailSuccess) {
|
||||
handleRemoveLabelFromEmailSuccess(success);
|
||||
} else {
|
||||
super.handleSuccessViewState(success);
|
||||
}
|
||||
@@ -271,10 +259,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
_showMessageWhenEmailPrintingFailed(failure);
|
||||
} else if (failure is CalendarEventReplyFailure) {
|
||||
_calendarEventFailure(failure);
|
||||
} else if (failure is AddALabelToAnEmailFailure) {
|
||||
handleAddLabelToEmailFailure(failure);
|
||||
} else if (failure is RemoveALabelFromAnEmailFailure) {
|
||||
handleRemoveLabelFromEmailFailure(failure);
|
||||
} else {
|
||||
super.handleFailureViewState(failure);
|
||||
}
|
||||
@@ -364,7 +348,23 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
action.emailId != _currentEmailId) {
|
||||
return;
|
||||
}
|
||||
toggleLabelToEmail(action.emailId, action.label, false);
|
||||
mailboxDashBoardController.toggleLabelToEmail(
|
||||
action.emailId,
|
||||
action.label,
|
||||
false,
|
||||
);
|
||||
} else if (action is SyncUpdateLabelForEmailOnMemory) {
|
||||
mailboxDashBoardController.clearEmailUIAction();
|
||||
if (_currentEmailId == null ||
|
||||
action.emailId != _currentEmailId) {
|
||||
return;
|
||||
}
|
||||
|
||||
syncLabelToSelectedEmailOnMemory(
|
||||
emailId: action.emailId,
|
||||
labelKeyword: action.labelKeyword,
|
||||
remove: action.shouldRemove,
|
||||
);
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -914,7 +914,8 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
break;
|
||||
case EmailActionType.labelAs:
|
||||
if (!isLabelAvailable) return;
|
||||
openAddLabelToEmailDialogModal(presentationEmail);
|
||||
mailboxDashBoardController
|
||||
.openAddLabelToEmailDialogModal(presentationEmail);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user