TF-4236 Implement remove a label from an email when unselect in context menu Label as

This commit is contained in:
dab246
2026-01-09 09:34:04 +07:00
committed by Dat H. Pham
parent 36e573db23
commit 3ef66bbbda
11 changed files with 376 additions and 29 deletions
@@ -47,6 +47,7 @@ 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';
@@ -60,6 +61,7 @@ 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';
@@ -119,6 +121,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
final StoreOpenedEmailInteractor _storeOpenedEmailInteractor;
final PrintEmailInteractor _printEmailInteractor;
final AddALabelToAnEmailInteractor addALabelToAnEmailInteractor;
final RemoveALabelFromAnEmailInteractor removeALabelFromAnEmailInteractor;
final EmailId? _currentEmailId;
CreateNewEmailRuleFilterInteractor? _createNewEmailRuleFilterInteractor;
@@ -189,6 +192,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
this._getAllIdentitiesInteractor,
this._storeOpenedEmailInteractor,
this.addALabelToAnEmailInteractor,
this.removeALabelFromAnEmailInteractor,
this._printEmailInteractor, {
EmailId? currentEmailId,
}) : _currentEmailId = currentEmailId;
@@ -247,6 +251,8 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
calendarEventSuccess(success);
} else if (success is AddALabelToAnEmailSuccess) {
handleAddLabelToEmailSuccess(success);
} else if (success is RemoveALabelFromAnEmailSuccess) {
handleRemoveLabelFromEmailSuccess(success);
} else {
super.handleSuccessViewState(success);
}
@@ -266,6 +272,8 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
_calendarEventFailure(failure);
} else if (failure is AddALabelToAnEmailFailure) {
handleAddLabelToEmailFailure(failure);
} else if (failure is RemoveALabelFromAnEmailFailure) {
handleRemoveLabelFromEmailFailure(failure);
} else {
super.handleFailureViewState(failure);
}