TF-934 Select mailbox, email when change route on browser
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/email/email_action_type.dart';
|
||||
import 'package:model/email/presentation_email.dart';
|
||||
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
||||
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
|
||||
|
||||
class DashBoardAction extends UIAction {
|
||||
static final idle = DashBoardAction();
|
||||
@@ -115,9 +117,11 @@ class SelectMailboxDefaultAction extends DashBoardAction {
|
||||
class SelectEmailByIdAction extends DashBoardAction {
|
||||
|
||||
final EmailId emailId;
|
||||
final MailboxId? mailboxId;
|
||||
final DashboardType dashboardType;
|
||||
|
||||
SelectEmailByIdAction(this.emailId);
|
||||
SelectEmailByIdAction(this.emailId, this.mailboxId, this.dashboardType);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [emailId];
|
||||
List<Object?> get props => [emailId, mailboxId, dashboardType];
|
||||
}
|
||||
+11
-9
@@ -326,7 +326,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
|
||||
void _getSessionCurrent() {
|
||||
final arguments = Get.arguments;
|
||||
log('MailboxDashBoardController::_setSessionCurrent(): arguments = $arguments');
|
||||
log('MailboxDashBoardController::_getSessionCurrent(): arguments = $arguments');
|
||||
if (arguments is Session) {
|
||||
sessionCurrent = arguments;
|
||||
accountId.value = sessionCurrent?.accounts.keys.first;
|
||||
@@ -381,12 +381,13 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
}
|
||||
|
||||
void setSelectedMailbox(PresentationMailbox? newPresentationMailbox) {
|
||||
selectedMailbox.value = newPresentationMailbox;
|
||||
}
|
||||
|
||||
void setNewFirstSelectedMailbox(PresentationMailbox? newPresentationMailbox) {
|
||||
selectedMailbox.firstRebuild = true;
|
||||
selectedMailbox.value = newPresentationMailbox;
|
||||
final previousMailbox = selectedMailbox.value;
|
||||
if (previousMailbox == newPresentationMailbox) {
|
||||
selectedMailbox.value = newPresentationMailbox;
|
||||
selectedMailbox.refresh();
|
||||
} else {
|
||||
selectedMailbox.value = newPresentationMailbox;
|
||||
}
|
||||
}
|
||||
|
||||
void setSelectedEmail(PresentationEmail? newPresentationEmail) {
|
||||
@@ -885,7 +886,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
Function? onCancelSelectionEmail,
|
||||
}
|
||||
) {
|
||||
if (_responsiveUtils.isMobile(context)) {
|
||||
if (_responsiveUtils.isScreenWithShortestSide(context)) {
|
||||
(ConfirmationDialogActionSheetBuilder(context)
|
||||
..messageText(actionType.getContentDialog(
|
||||
context,
|
||||
@@ -1020,6 +1021,8 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
|
||||
@override
|
||||
void handleReloaded(Session session) {
|
||||
log('MailboxDashBoardController::handleReloaded():');
|
||||
_getRouteParameters();
|
||||
sessionCurrent = session;
|
||||
accountId.value = sessionCurrent?.accounts.keys.first;
|
||||
_getUserProfile();
|
||||
@@ -1028,7 +1031,6 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
injectRuleFilterBindings(sessionCurrent, accountId.value);
|
||||
injectVacationBindings(sessionCurrent, accountId.value);
|
||||
_getVacationResponse();
|
||||
_getRouteParameters();
|
||||
}
|
||||
|
||||
void _getRouteParameters() {
|
||||
|
||||
Reference in New Issue
Block a user