TF-3385 Update mark as read and star
This commit is contained in:
@@ -33,6 +33,8 @@ import 'package:tmail_ui_user/features/composer/presentation/extensions/prefix_e
|
||||
import 'package:tmail_ui_user/features/contact/presentation/model/contact_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/mark_read_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_read_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_star_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||
import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.dart';
|
||||
@@ -44,6 +46,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_current_emails_flags_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart';
|
||||
@@ -60,6 +63,8 @@ import 'package:tmail_ui_user/features/search/email/presentation/model/search_mo
|
||||
import 'package:tmail_ui_user/features/search/email/presentation/search_email_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_multiple_email_read_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_star_multiple_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/search_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/search_more_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/usecases/search_email_interactor.dart';
|
||||
@@ -260,6 +265,41 @@ class SearchEmailController extends BaseController
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
ever(mailboxDashBoardController.viewState, (viewState) {
|
||||
final reactionState = viewState.getOrElse(() => UIState.idle);
|
||||
if (reactionState is MarkAsEmailReadSuccess) {
|
||||
mailboxDashBoardController.updateEmailFlagByEmailIds(
|
||||
[reactionState.emailId],
|
||||
readAction: reactionState.readActions,
|
||||
);
|
||||
} else if (reactionState is MarkAsMultipleEmailReadAllSuccess) {
|
||||
mailboxDashBoardController.updateEmailFlagByEmailIds(
|
||||
reactionState.emailIds,
|
||||
readAction: reactionState.readActions,
|
||||
);
|
||||
} else if (reactionState is MarkAsMultipleEmailReadHasSomeEmailFailure) {
|
||||
mailboxDashBoardController.updateEmailFlagByEmailIds(
|
||||
reactionState.successEmailIds,
|
||||
readAction: reactionState.readActions,
|
||||
);
|
||||
} else if (reactionState is MarkAsStarEmailSuccess) {
|
||||
mailboxDashBoardController.updateEmailFlagByEmailIds(
|
||||
[reactionState.emailId],
|
||||
markStarAction: reactionState.markStarAction,
|
||||
);
|
||||
} else if (reactionState is MarkAsStarMultipleEmailAllSuccess) {
|
||||
mailboxDashBoardController.updateEmailFlagByEmailIds(
|
||||
reactionState.emailIds,
|
||||
markStarAction: reactionState.markStarAction,
|
||||
);
|
||||
} else if (reactionState is MarkAsStarMultipleEmailHasSomeEmailFailure) {
|
||||
mailboxDashBoardController.updateEmailFlagByEmailIds(
|
||||
reactionState.successEmailIds,
|
||||
markStarAction: reactionState.markStarAction,
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void _refreshEmailChanges({jmap.State? newState}) {
|
||||
|
||||
@@ -33,6 +33,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/model/subscribe_request.da
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/create_new_mailbox_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/delete_multiple_mailbox_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/get_all_mailboxes_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/move_mailbox_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/refresh_changes_all_mailboxes_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/rename_mailbox_state.dart';
|
||||
@@ -185,6 +186,18 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
||||
_refreshMailboxChanges(newState: action.newState);
|
||||
}
|
||||
});
|
||||
|
||||
ever(dashboardController.viewState, (viewState) {
|
||||
final reactionState = viewState.getOrElse(() => UIState.idle);
|
||||
if (reactionState is MarkAsMailboxReadAllSuccess) {
|
||||
clearUnreadCount(reactionState.mailboxId);
|
||||
} else if (reactionState is MarkAsMailboxReadHasSomeEmailFailure) {
|
||||
updateUnreadCountOfMailboxById(
|
||||
reactionState.mailboxId,
|
||||
unreadChanges: -reactionState.countEmailsRead,
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void _getAllMailboxAction() {
|
||||
|
||||
Reference in New Issue
Block a user