TF-2101 Handle restore deleted messages

(cherry picked from commit e675f98a6c85d9c4a90efc686e6ff72d23b4c678)
This commit is contained in:
hieubt
2023-12-21 16:56:06 +07:00
committed by Dat H. Pham
parent 4f6b500fa0
commit 71dc206ccd
30 changed files with 457 additions and 99 deletions
@@ -1,16 +1,55 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:email_recovery/email_recovery/email_recovery_action.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
class GetRestoredDeletedMessageLoading extends LoadingState {}
class GetRestoredDeletedMessageSuccess extends UIState {
class GetRestoredDeletedMessageSuccess extends UIActionState {
final EmailRecoveryAction emailRecoveryAction;
GetRestoredDeletedMessageSuccess(this.emailRecoveryAction);
GetRestoredDeletedMessageSuccess(
this.emailRecoveryAction,
{
jmap.State? currentMailboxState,
}
) : super(null, currentMailboxState);
@override
List<Object> get props => [emailRecoveryAction];
List<Object?> get props => [emailRecoveryAction, ...super.props];
}
class GetRestoredDeletedMessageCompleted extends GetRestoredDeletedMessageSuccess {
final Mailbox? recoveredMailbox;
GetRestoredDeletedMessageCompleted(
EmailRecoveryAction emailRecoveryAction,
{this.recoveredMailbox}
) : super(emailRecoveryAction);
@override
List<Object?> get props => [emailRecoveryAction, recoveredMailbox];
}
class GetRestoredDeletedMessageWaiting extends GetRestoredDeletedMessageSuccess {
GetRestoredDeletedMessageWaiting(
EmailRecoveryAction emailRecoveryAction,
) : super(emailRecoveryAction);
}
class GetRestoredDeletedMessageInProgress extends GetRestoredDeletedMessageSuccess {
GetRestoredDeletedMessageInProgress(
EmailRecoveryAction emailRecoveryAction,
) : super(emailRecoveryAction);
}
class GetRestoredDeletedMessageCanceled extends GetRestoredDeletedMessageSuccess {
GetRestoredDeletedMessageCanceled(
EmailRecoveryAction emailRecoveryAction,
) : super(emailRecoveryAction);
}
class GetRestoredDeletedMessageFailure extends FeatureFailure {
@@ -1,16 +1,23 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:email_recovery/email_recovery/email_recovery_action.dart';
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
class RestoreDeletedMessageLoading extends LoadingState {}
class RestoreDeletedMessageSuccess extends UIState {
class RestoreDeletedMessageSuccess extends UIActionState {
final EmailRecoveryAction emailRecoveryAction;
RestoreDeletedMessageSuccess(this.emailRecoveryAction);
RestoreDeletedMessageSuccess(
this.emailRecoveryAction,
{
jmap.State? currentMailboxState,
}
) : super(null, currentMailboxState);
@override
List<Object> get props => [emailRecoveryAction];
List<Object?> get props => [emailRecoveryAction, ...super.props];
}
class RestoreDeletedMessageFailure extends FeatureFailure {