Fix can not refresh change list mailbox and email after take actions with email in succession

This commit is contained in:
dab246
2023-01-18 14:08:08 +07:00
committed by Dat H. Pham
parent 8587b9e8bd
commit 0f675c2270
20 changed files with 40 additions and 7 deletions
@@ -3,6 +3,8 @@ import 'package:model/email/read_actions.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 LoadingMarkAsMultipleEmailReadAll extends UIState {}
class MarkAsMultipleEmailReadAllSuccess extends UIActionState {
final int countMarkAsReadSuccess;
final ReadActions readActions;
@@ -3,6 +3,8 @@ import 'package:model/model.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 LoadingMarkAsStarMultipleEmailAll extends UIState {}
class MarkAsStarMultipleEmailAllSuccess extends UIActionState {
final int countMarkStarSuccess;
final MarkStarAction markStarAction;
@@ -6,6 +6,8 @@ import 'package:model/email/email_action_type.dart';
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
class LoadingMoveMultipleEmailToMailboxAll extends UIState {}
class MoveMultipleEmailToMailboxAllSuccess extends UIActionState {
final List<EmailId> movedListEmailId;
final MailboxId currentMailboxId;
@@ -19,6 +19,8 @@ class MarkAsMultipleEmailReadInteractor {
ReadActions readAction
) async* {
try {
yield Right(LoadingMarkAsMultipleEmailReadAll());
final listState = await Future.wait([
_mailboxRepository.getMailboxState(),
_emailRepository.getEmailState(),
@@ -17,6 +17,8 @@ class MarkAsStarMultipleEmailInteractor {
MarkStarAction markStarAction
) async* {
try {
yield Right(LoadingMarkAsStarMultipleEmailAll());
final currentEmailState = await _emailRepository.getEmailState();
final listEmailNeedMarkStar = emails
@@ -16,6 +16,8 @@ class MoveMultipleEmailToMailboxInteractor {
Stream<Either<Failure, Success>> execute(AccountId accountId, MoveToMailboxRequest moveRequest) async* {
try {
yield Right(LoadingMoveMultipleEmailToMailboxAll());
final listState = await Future.wait([
_mailboxRepository.getMailboxState(),
_emailRepository.getEmailState(),