Fix forward recipients error handling

This commit is contained in:
dab246
2025-08-26 00:50:03 +07:00
committed by Dat H. Pham
parent 5314116c76
commit cb9e38db44
15 changed files with 190 additions and 64 deletions
@@ -1,14 +1,16 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/utils/app_logger.dart';
import 'package:model/mailbox/select_mode.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/add_recipient_in_forwarding_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/delete_recipient_in_forwarding_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/edit_local_copy_in_forwarding_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/update_forwarding_state.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/forward/forward_controller.dart';
extension HandleErrorWhenUpdateForwardFailExtension on ForwardController {
extension HandleUpdateForwardExtension on ForwardController {
void handleErrorWhenUpdateForwardFail(Failure failure) {
logError(
'HandleErrorWhenUpdateForwardFailExtension::handleErrorWhenUpdateForwardFail: $failure',
'$runtimeType::handleErrorWhenUpdateForwardFail: $failure',
);
if (failure is AddRecipientsInForwardingFailure) {
_handleAddRecipientsInForwardingFailure(failure);
@@ -37,4 +39,20 @@ extension HandleErrorWhenUpdateForwardFailExtension on ForwardController {
) {
toastManager.showMessageFailure(failure);
}
void handleUpdateForwardingCompleteWithSomeCaseFailure(
UpdateForwardingCompleteWithSomeCaseFailure state,
) {
log(
'$runtimeType::handleUpdateForwardingCompleteWithSomeCaseFailure: $state',
);
if (state is AddRecipientsInForwardingSuccessWithSomeCaseFailure) {
recipientController.clearAll();
} else if (state is DeleteRecipientInForwardingSuccessWithSomeCaseFailure) {
selectionMode.value = SelectMode.INACTIVE;
}
updateTMailForward(state.forward);
toastManager.showMessageFailure(state);
}
}