Fix can not refresh change list mailbox and email after take actions with email in succession
This commit is contained in:
@@ -3,6 +3,8 @@ import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
|||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
||||||
|
|
||||||
|
class LoadingDeleteMultipleEmailsPermanentlyAll extends UIState {}
|
||||||
|
|
||||||
class DeleteMultipleEmailsPermanentlyAllSuccess extends UIActionState {
|
class DeleteMultipleEmailsPermanentlyAllSuccess extends UIActionState {
|
||||||
|
|
||||||
List<EmailId> emailIds;
|
List<EmailId> emailIds;
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import 'package:model/model.dart';
|
|||||||
import 'package:tmail_ui_user/features/base/state/ui_action_state.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';
|
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
||||||
|
|
||||||
|
class LoadingMoveToMailbox extends UIState {}
|
||||||
|
|
||||||
class MoveToMailboxSuccess extends UIActionState {
|
class MoveToMailboxSuccess extends UIActionState {
|
||||||
final EmailId emailId;
|
final EmailId emailId;
|
||||||
final MailboxId currentMailboxId;
|
final MailboxId currentMailboxId;
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ class DeleteMultipleEmailsPermanentlyInteractor {
|
|||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(AccountId accountId, List<EmailId> emailIds) async* {
|
Stream<Either<Failure, Success>> execute(AccountId accountId, List<EmailId> emailIds) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right<Failure, Success>(LoadingDeleteMultipleEmailsPermanentlyAll());
|
||||||
|
|
||||||
final listState = await Future.wait([
|
final listState = await Future.wait([
|
||||||
_mailboxRepository.getMailboxState(),
|
_mailboxRepository.getMailboxState(),
|
||||||
_emailRepository.getEmailState(),
|
_emailRepository.getEmailState(),
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ class MoveToMailboxInteractor {
|
|||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(AccountId accountId, MoveToMailboxRequest moveRequest) async* {
|
Stream<Either<Failure, Success>> execute(AccountId accountId, MoveToMailboxRequest moveRequest) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right(LoadingMoveToMailbox());
|
||||||
|
|
||||||
final listState = await Future.wait([
|
final listState = await Future.wait([
|
||||||
_mailboxRepository.getMailboxState(),
|
_mailboxRepository.getMailboxState(),
|
||||||
_emailRepository.getEmailState(),
|
_emailRepository.getEmailState(),
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
|||||||
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
|
|
||||||
|
class LoadingCreateNewMailbox extends UIState {}
|
||||||
|
|
||||||
class CreateNewMailboxSuccess extends UIActionState {
|
class CreateNewMailboxSuccess extends UIActionState {
|
||||||
|
|
||||||
final Mailbox newMailbox;
|
final Mailbox newMailbox;
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
import 'package:core/presentation/state/failure.dart';
|
import 'package:core/presentation/state/failure.dart';
|
||||||
|
import 'package:core/presentation/state/success.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
||||||
|
|
||||||
|
class LoadingDeleteMultipleMailboxAll extends UIState {}
|
||||||
|
|
||||||
class DeleteMultipleMailboxAllSuccess extends UIActionState {
|
class DeleteMultipleMailboxAllSuccess extends UIActionState {
|
||||||
|
|
||||||
final List<MailboxId> listMailboxIdDeleted;
|
final List<MailboxId> listMailboxIdDeleted;
|
||||||
|
|||||||
@@ -4,13 +4,7 @@ import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
|||||||
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
|
|
||||||
class MoveMailboxLoading extends UIState {
|
class LoadingMoveMailbox extends UIState {}
|
||||||
|
|
||||||
MoveMailboxLoading();
|
|
||||||
|
|
||||||
@override
|
|
||||||
List<Object?> get props => [];
|
|
||||||
}
|
|
||||||
|
|
||||||
class MoveMailboxSuccess extends UIActionState {
|
class MoveMailboxSuccess extends UIActionState {
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import 'package:core/core.dart';
|
|||||||
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
|
|
||||||
|
class LoadingRenameMailbox extends UIState {}
|
||||||
|
|
||||||
class RenameMailboxSuccess extends UIActionState {
|
class RenameMailboxSuccess extends UIActionState {
|
||||||
|
|
||||||
RenameMailboxSuccess({
|
RenameMailboxSuccess({
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
|
|
||||||
|
class LoadingSearchMailbox extends UIState {}
|
||||||
|
|
||||||
class SearchMailboxSuccess extends UIState {
|
class SearchMailboxSuccess extends UIState {
|
||||||
|
|
||||||
final List<PresentationMailbox> mailboxesSearched;
|
final List<PresentationMailbox> mailboxesSearched;
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ class CreateNewMailboxInteractor {
|
|||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(AccountId accountId, CreateNewMailboxRequest newMailboxRequest) async* {
|
Stream<Either<Failure, Success>> execute(AccountId accountId, CreateNewMailboxRequest newMailboxRequest) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right<Failure, Success>(LoadingCreateNewMailbox());
|
||||||
|
|
||||||
final currentMailboxState = await _mailboxRepository.getMailboxState();
|
final currentMailboxState = await _mailboxRepository.getMailboxState();
|
||||||
final newMailbox = await _mailboxRepository.createNewMailbox(accountId, newMailboxRequest);
|
final newMailbox = await _mailboxRepository.createNewMailbox(accountId, newMailboxRequest);
|
||||||
if (newMailbox != null) {
|
if (newMailbox != null) {
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ class DeleteMultipleMailboxInteractor {
|
|||||||
List<MailboxId> listMailboxIdToDelete
|
List<MailboxId> listMailboxIdToDelete
|
||||||
) async* {
|
) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right<Failure, Success>(LoadingDeleteMultipleMailboxAll());
|
||||||
|
|
||||||
final currentMailboxState = await _mailboxRepository.getMailboxState();
|
final currentMailboxState = await _mailboxRepository.getMailboxState();
|
||||||
|
|
||||||
final listResult = await Future.wait(
|
final listResult = await Future.wait(
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ class MoveMailboxInteractor {
|
|||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(AccountId accountId, MoveMailboxRequest request) async* {
|
Stream<Either<Failure, Success>> execute(AccountId accountId, MoveMailboxRequest request) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right<Failure, Success>(LoadingMoveMailbox());
|
||||||
|
|
||||||
final currentMailboxState = await _mailboxRepository.getMailboxState();
|
final currentMailboxState = await _mailboxRepository.getMailboxState();
|
||||||
final result = await _mailboxRepository.moveMailbox(accountId, request);
|
final result = await _mailboxRepository.moveMailbox(accountId, request);
|
||||||
if (result) {
|
if (result) {
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ class RenameMailboxInteractor {
|
|||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(AccountId accountId, RenameMailboxRequest request) async* {
|
Stream<Either<Failure, Success>> execute(AccountId accountId, RenameMailboxRequest request) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right<Failure, Success>(LoadingRenameMailbox());
|
||||||
|
|
||||||
final currentMailboxState = await _mailboxRepository.getMailboxState();
|
final currentMailboxState = await _mailboxRepository.getMailboxState();
|
||||||
|
|
||||||
final result = await _mailboxRepository.renameMailbox(accountId, request);
|
final result = await _mailboxRepository.renameMailbox(accountId, request);
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ class SearchMailboxInteractor {
|
|||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(List<PresentationMailbox> mailboxes, SearchQuery searchQuery) async* {
|
Stream<Either<Failure, Success>> execute(List<PresentationMailbox> mailboxes, SearchQuery searchQuery) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right<Failure, Success>(LoadingSearchMailbox());
|
||||||
|
|
||||||
final resultList = mailboxes
|
final resultList = mailboxes
|
||||||
.where((mailbox) => mailbox.name?.name.toLowerCase().contains(searchQuery.value.toLowerCase()) == true)
|
.where((mailbox) => mailbox.name?.name.toLowerCase().contains(searchQuery.value.toLowerCase()) == true)
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import 'package:model/email/read_actions.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
||||||
|
|
||||||
|
class LoadingMarkAsMultipleEmailReadAll extends UIState {}
|
||||||
|
|
||||||
class MarkAsMultipleEmailReadAllSuccess extends UIActionState {
|
class MarkAsMultipleEmailReadAllSuccess extends UIActionState {
|
||||||
final int countMarkAsReadSuccess;
|
final int countMarkAsReadSuccess;
|
||||||
final ReadActions readActions;
|
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:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
|
||||||
|
|
||||||
|
class LoadingMarkAsStarMultipleEmailAll extends UIState {}
|
||||||
|
|
||||||
class MarkAsStarMultipleEmailAllSuccess extends UIActionState {
|
class MarkAsStarMultipleEmailAllSuccess extends UIActionState {
|
||||||
final int countMarkStarSuccess;
|
final int countMarkStarSuccess;
|
||||||
final MarkStarAction markStarAction;
|
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/base/state/ui_action_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
||||||
|
|
||||||
|
class LoadingMoveMultipleEmailToMailboxAll extends UIState {}
|
||||||
|
|
||||||
class MoveMultipleEmailToMailboxAllSuccess extends UIActionState {
|
class MoveMultipleEmailToMailboxAllSuccess extends UIActionState {
|
||||||
final List<EmailId> movedListEmailId;
|
final List<EmailId> movedListEmailId;
|
||||||
final MailboxId currentMailboxId;
|
final MailboxId currentMailboxId;
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ class MarkAsMultipleEmailReadInteractor {
|
|||||||
ReadActions readAction
|
ReadActions readAction
|
||||||
) async* {
|
) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right(LoadingMarkAsMultipleEmailReadAll());
|
||||||
|
|
||||||
final listState = await Future.wait([
|
final listState = await Future.wait([
|
||||||
_mailboxRepository.getMailboxState(),
|
_mailboxRepository.getMailboxState(),
|
||||||
_emailRepository.getEmailState(),
|
_emailRepository.getEmailState(),
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ class MarkAsStarMultipleEmailInteractor {
|
|||||||
MarkStarAction markStarAction
|
MarkStarAction markStarAction
|
||||||
) async* {
|
) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right(LoadingMarkAsStarMultipleEmailAll());
|
||||||
|
|
||||||
final currentEmailState = await _emailRepository.getEmailState();
|
final currentEmailState = await _emailRepository.getEmailState();
|
||||||
|
|
||||||
final listEmailNeedMarkStar = emails
|
final listEmailNeedMarkStar = emails
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ class MoveMultipleEmailToMailboxInteractor {
|
|||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(AccountId accountId, MoveToMailboxRequest moveRequest) async* {
|
Stream<Either<Failure, Success>> execute(AccountId accountId, MoveToMailboxRequest moveRequest) async* {
|
||||||
try {
|
try {
|
||||||
|
yield Right(LoadingMoveMultipleEmailToMailboxAll());
|
||||||
|
|
||||||
final listState = await Future.wait([
|
final listState = await Future.wait([
|
||||||
_mailboxRepository.getMailboxState(),
|
_mailboxRepository.getMailboxState(),
|
||||||
_emailRepository.getEmailState(),
|
_emailRepository.getEmailState(),
|
||||||
|
|||||||
Reference in New Issue
Block a user