TF-2925 Store previous mailboxId to prevent upload ThreadView when change after do any action
This commit is contained in:
committed by
Dat H. Pham
parent
b25b4dcf5c
commit
2a3c880d2e
@@ -563,10 +563,10 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
mailboxDashBoardController.clearFilterMessageOption();
|
mailboxDashBoardController.clearFilterMessageOption();
|
||||||
}
|
}
|
||||||
_disableAllSearchEmail();
|
_disableAllSearchEmail();
|
||||||
_replaceBrowserHistory();
|
|
||||||
mailboxDashBoardController.closeMailboxMenuDrawer();
|
mailboxDashBoardController.closeMailboxMenuDrawer();
|
||||||
mailboxDashBoardController.setSelectedMailbox(presentationMailboxSelected);
|
mailboxDashBoardController.setSelectedMailbox(presentationMailboxSelected);
|
||||||
mailboxDashBoardController.dispatchRoute(DashboardRoutes.thread);
|
mailboxDashBoardController.dispatchRoute(DashboardRoutes.thread);
|
||||||
|
_replaceBrowserHistory();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _disableAllSearchEmail() {
|
void _disableAllSearchEmail() {
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import 'package:tmail_ui_user/features/base/base_controller.dart';
|
|||||||
import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart';
|
import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
|
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
|
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/exceptions/email_exceptions.dart';
|
|
||||||
import 'package:tmail_ui_user/features/email/domain/model/mark_read_action.dart';
|
import 'package:tmail_ui_user/features/email/domain/model/mark_read_action.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/state/delete_email_permanently_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/delete_email_permanently_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/state/delete_multiple_emails_permanently_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/delete_multiple_emails_permanently_state.dart';
|
||||||
@@ -31,6 +30,7 @@ import 'package:tmail_ui_user/features/email/domain/state/store_event_attendance
|
|||||||
import 'package:tmail_ui_user/features/email/domain/state/unsubscribe_email_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/unsubscribe_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.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/email/presentation/utils/email_utils.dart';
|
||||||
|
import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.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/mark_as_mailbox_read_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
@@ -104,6 +104,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
|
|
||||||
bool canLoadMore = false;
|
bool canLoadMore = false;
|
||||||
bool canSearchMore = false;
|
bool canSearchMore = false;
|
||||||
|
MailboxId? _currentMemoryMailboxId;
|
||||||
jmap.State? _currentEmailState;
|
jmap.State? _currentEmailState;
|
||||||
final ScrollController listEmailController = ScrollController();
|
final ScrollController listEmailController = ScrollController();
|
||||||
final FocusNode focusNodeKeyBoard = FocusNode();
|
final FocusNode focusNodeKeyBoard = FocusNode();
|
||||||
@@ -113,9 +114,9 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
|
|
||||||
Session? get _session => mailboxDashBoardController.sessionCurrent;
|
Session? get _session => mailboxDashBoardController.sessionCurrent;
|
||||||
|
|
||||||
PresentationMailbox? get currentMailbox => mailboxDashBoardController.selectedMailbox.value;
|
PresentationMailbox? get selectedMailbox => mailboxDashBoardController.selectedMailbox.value;
|
||||||
|
|
||||||
MailboxId? get _currentMailboxId => currentMailbox?.mailboxId;
|
MailboxId? get selectedMailboxId => selectedMailbox?.id;
|
||||||
|
|
||||||
search.SearchController get searchController => mailboxDashBoardController.searchController;
|
search.SearchController get searchController => mailboxDashBoardController.searchController;
|
||||||
|
|
||||||
@@ -149,6 +150,8 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void onClose() {
|
void onClose() {
|
||||||
|
_currentMemoryMailboxId = null;
|
||||||
|
_currentEmailState = null;
|
||||||
listEmailController.dispose();
|
listEmailController.dispose();
|
||||||
focusNodeKeyBoard.dispose();
|
focusNodeKeyBoard.dispose();
|
||||||
super.onClose();
|
super.onClose();
|
||||||
@@ -235,10 +238,16 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
|
|
||||||
void _registerObxStreamListener() {
|
void _registerObxStreamListener() {
|
||||||
ever(mailboxDashBoardController.selectedMailbox, (mailbox) {
|
ever(mailboxDashBoardController.selectedMailbox, (mailbox) {
|
||||||
log('ThreadController::_registerObxStreamListener:ever: SELECTED_MAILBOX_ID = ${mailbox?.id.asString} | SELECTED_MAILBOX_NAME = ${mailbox?.name?.name}');
|
log('ThreadController::_registerObxStreamListener:TEST: SelectedMailbox: ${mailbox?.id} - ${mailbox?.name} | CurrentMemoryMailboxId: $_currentMemoryMailboxId');
|
||||||
_resetToOriginalValue();
|
if (mailbox is PresentationMailbox
|
||||||
if (mailbox != null) {
|
&& mailbox.mailboxId != _currentMemoryMailboxId) {
|
||||||
|
_currentMemoryMailboxId = mailbox.id;
|
||||||
|
consumeState(Stream.value(Right(GetAllEmailLoading())));
|
||||||
|
_resetToOriginalValue();
|
||||||
_getAllEmailAction();
|
_getAllEmailAction();
|
||||||
|
} else if (mailbox == null) { // disable current mailbox when search active
|
||||||
|
_currentMemoryMailboxId = null;
|
||||||
|
_resetToOriginalValue();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -421,8 +430,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _resetToOriginalValue() {
|
void _resetToOriginalValue() {
|
||||||
log('ThreadController::_resetToOriginalValue:');
|
log('ThreadController::_resetToOriginalValue');
|
||||||
consumeState(Stream.value(Right(GetAllEmailLoading())));
|
|
||||||
mailboxDashBoardController.emailsInCurrentMailbox.clear();
|
mailboxDashBoardController.emailsInCurrentMailbox.clear();
|
||||||
mailboxDashBoardController.listEmailSelected.clear();
|
mailboxDashBoardController.listEmailSelected.clear();
|
||||||
mailboxDashBoardController.currentSelectMode.value = SelectMode.INACTIVE;
|
mailboxDashBoardController.currentSelectMode.value = SelectMode.INACTIVE;
|
||||||
@@ -431,8 +439,8 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _getAllEmailSuccess(GetAllEmailSuccess success) {
|
void _getAllEmailSuccess(GetAllEmailSuccess success) {
|
||||||
if (success.currentMailboxId != currentMailbox?.mailboxId) {
|
if (success.currentMailboxId != selectedMailboxId) {
|
||||||
log('ThreadController::_getAllEmailSuccess: SELECTED_MAILBOX_ID = ${success.currentMailboxId?.asString} | CURRENT_MAILBOX_ID = ${currentMailbox?.mailboxId?.asString} | CURRENT_MAILBOX_NAME = ${currentMailbox?.name?.name}');
|
log('ThreadController::_getAllEmailSuccess: GetAllForMailboxEd = ${success.currentMailboxId?.asString} | SELECTED_MAILBOX_ID = ${selectedMailboxId?.asString} | SELECTED_MAILBOX_NAME = ${selectedMailbox?.name?.name}');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,7 +449,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
log('ThreadController::_getAllEmailSuccess():COUNT = ${success.emailList.length} | EMAIL_STATE = $_currentEmailState');
|
log('ThreadController::_getAllEmailSuccess():COUNT = ${success.emailList.length} | EMAIL_STATE = $_currentEmailState');
|
||||||
final newListEmail = success.emailList.syncPresentationEmail(
|
final newListEmail = success.emailList.syncPresentationEmail(
|
||||||
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
||||||
selectedMailbox: currentMailbox,
|
selectedMailbox: selectedMailbox,
|
||||||
searchQuery: searchController.searchQuery,
|
searchQuery: searchController.searchQuery,
|
||||||
isSearchEmailRunning: searchController.isSearchEmailRunning
|
isSearchEmailRunning: searchController.isSearchEmailRunning
|
||||||
);
|
);
|
||||||
@@ -463,8 +471,8 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _refreshChangesAllEmailSuccess(RefreshChangesAllEmailSuccess success) {
|
void _refreshChangesAllEmailSuccess(RefreshChangesAllEmailSuccess success) {
|
||||||
if (success.currentMailboxId != currentMailbox?.mailboxId) {
|
if (success.currentMailboxId != selectedMailboxId) {
|
||||||
log('ThreadController::_refreshChangesAllEmailSuccess: SELECTED_MAILBOX_ID = ${success.currentMailboxId?.asString} | CURRENT_MAILBOX_ID = ${currentMailbox?.mailboxId?.asString} | CURRENT_MAILBOX_NAME = ${currentMailbox?.name?.name}');
|
log('ThreadController::_refreshChangesAllEmailSuccess: RefreshedMailboxId = ${success.currentMailboxId?.asString} | SELECTED_MAILBOX_ID = ${selectedMailboxId?.asString} | SELECTED_MAILBOX_NAME = ${selectedMailbox?.name?.name}');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -475,7 +483,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
final newListEmail = emailsAfterChanges.combine(emailsBeforeChanges);
|
final newListEmail = emailsAfterChanges.combine(emailsBeforeChanges);
|
||||||
final emailListSynced = newListEmail.syncPresentationEmail(
|
final emailListSynced = newListEmail.syncPresentationEmail(
|
||||||
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
||||||
selectedMailbox: currentMailbox,
|
selectedMailbox: selectedMailbox,
|
||||||
searchQuery: searchController.searchQuery,
|
searchQuery: searchController.searchQuery,
|
||||||
isSearchEmailRunning: searchController.isSearchEmailRunning
|
isSearchEmailRunning: searchController.isSearchEmailRunning
|
||||||
);
|
);
|
||||||
@@ -498,13 +506,15 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
limit: ThreadConstants.defaultLimit,
|
limit: ThreadConstants.defaultLimit,
|
||||||
sort: searchController.sortOrderFiltered.value.getSortOrder().toNullable(),
|
sort: searchController.sortOrderFiltered.value.getSortOrder().toNullable(),
|
||||||
emailFilter: EmailFilter(
|
emailFilter: EmailFilter(
|
||||||
filter: _getFilterCondition(mailboxIdSelected: _currentMailboxId),
|
filter: _getFilterCondition(mailboxIdSelected: selectedMailboxId),
|
||||||
filterOption: mailboxDashBoardController.filterMessageOption.value,
|
filterOption: mailboxDashBoardController.filterMessageOption.value,
|
||||||
mailboxId: _currentMailboxId
|
mailboxId: selectedMailboxId
|
||||||
),
|
),
|
||||||
propertiesCreated: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!),
|
propertiesCreated: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!),
|
||||||
propertiesUpdated: ThreadConstants.propertiesUpdatedDefault,
|
propertiesUpdated: ThreadConstants.propertiesUpdatedDefault,
|
||||||
));
|
));
|
||||||
|
} else {
|
||||||
|
consumeState(Stream.value(Left(GetAllEmailFailure(NotFoundSessionException()))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -537,7 +547,12 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void refreshAllEmail() {
|
void refreshAllEmail() {
|
||||||
dispatchState(Right(LoadingState()));
|
if (searchController.isSearchEmailRunning) {
|
||||||
|
consumeState(Stream.value(Right(SearchingState())));
|
||||||
|
} else {
|
||||||
|
consumeState(Stream.value(Right(GetAllEmailLoading())));
|
||||||
|
}
|
||||||
|
|
||||||
canLoadMore = false;
|
canLoadMore = false;
|
||||||
loadingMoreStatus.value == LoadingMoreStatus.idle;
|
loadingMoreStatus.value == LoadingMoreStatus.idle;
|
||||||
cancelSelectEmail();
|
cancelSelectEmail();
|
||||||
@@ -573,9 +588,9 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
propertiesCreated: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!),
|
propertiesCreated: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!),
|
||||||
propertiesUpdated: ThreadConstants.propertiesUpdatedDefault,
|
propertiesUpdated: ThreadConstants.propertiesUpdatedDefault,
|
||||||
emailFilter: EmailFilter(
|
emailFilter: EmailFilter(
|
||||||
filter: _getFilterCondition(mailboxIdSelected: _currentMailboxId),
|
filter: _getFilterCondition(mailboxIdSelected: selectedMailboxId),
|
||||||
filterOption: mailboxDashBoardController.filterMessageOption.value,
|
filterOption: mailboxDashBoardController.filterMessageOption.value,
|
||||||
mailboxId: _currentMailboxId
|
mailboxId: selectedMailboxId
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@@ -596,7 +611,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
position: _searchEmailFilter.position,
|
position: _searchEmailFilter.position,
|
||||||
sort: searchController.sortOrderFiltered.value.getSortOrder().toNullable(),
|
sort: searchController.sortOrderFiltered.value.getSortOrder().toNullable(),
|
||||||
filterOption: mailboxDashBoardController.filterMessageOption.value,
|
filterOption: mailboxDashBoardController.filterMessageOption.value,
|
||||||
filter: _getFilterCondition(oldestEmail: oldestEmail, mailboxIdSelected: _currentMailboxId),
|
filter: _getFilterCondition(oldestEmail: oldestEmail, mailboxIdSelected: selectedMailboxId),
|
||||||
properties: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!),
|
properties: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!),
|
||||||
lastEmailId: oldestEmail?.id
|
lastEmailId: oldestEmail?.id
|
||||||
)
|
)
|
||||||
@@ -605,7 +620,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool _belongToCurrentMailboxId(PresentationEmail email) {
|
bool _belongToCurrentMailboxId(PresentationEmail email) {
|
||||||
return (email.mailboxIds != null && email.mailboxIds!.keys.contains(currentMailbox?.id));
|
return (email.mailboxIds != null && email.mailboxIds!.keys.contains(selectedMailboxId));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _notDuplicatedInCurrentList(PresentationEmail email) {
|
bool _notDuplicatedInCurrentList(PresentationEmail email) {
|
||||||
@@ -623,7 +638,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
.toList()
|
.toList()
|
||||||
.syncPresentationEmail(
|
.syncPresentationEmail(
|
||||||
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
||||||
selectedMailbox: currentMailbox,
|
selectedMailbox: selectedMailbox,
|
||||||
searchQuery: searchController.searchQuery,
|
searchQuery: searchController.searchQuery,
|
||||||
isSearchEmailRunning: searchController.isSearchEmailRunning
|
isSearchEmailRunning: searchController.isSearchEmailRunning
|
||||||
);
|
);
|
||||||
@@ -814,7 +829,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
properties: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!),
|
properties: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!),
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
dispatchState(Left(SearchEmailFailure(NotFoundEmailException())));
|
consumeState(Stream.value(Left(SearchEmailFailure(NotFoundSessionException()))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -846,7 +861,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
final newListEmailSearch = emailsSearchAfterChanges.combine(emailsSearchBeforeChanges);
|
final newListEmailSearch = emailsSearchAfterChanges.combine(emailsSearchBeforeChanges);
|
||||||
final newEmailListSynced = newListEmailSearch.syncPresentationEmail(
|
final newEmailListSynced = newListEmailSearch.syncPresentationEmail(
|
||||||
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
||||||
selectedMailbox: currentMailbox,
|
selectedMailbox: selectedMailbox,
|
||||||
searchQuery: searchController.searchQuery,
|
searchQuery: searchController.searchQuery,
|
||||||
isSearchEmailRunning: searchController.isSearchEmailRunning
|
isSearchEmailRunning: searchController.isSearchEmailRunning
|
||||||
);
|
);
|
||||||
@@ -904,7 +919,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
.toList()
|
.toList()
|
||||||
.syncPresentationEmail(
|
.syncPresentationEmail(
|
||||||
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
mapMailboxById: mailboxDashBoardController.mapMailboxById,
|
||||||
selectedMailbox: currentMailbox,
|
selectedMailbox: selectedMailbox,
|
||||||
searchQuery: searchController.searchQuery,
|
searchQuery: searchController.searchQuery,
|
||||||
isSearchEmailRunning: searchController.isSearchEmailRunning
|
isSearchEmailRunning: searchController.isSearchEmailRunning
|
||||||
);
|
);
|
||||||
@@ -942,7 +957,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
cancelSelectEmail();
|
cancelSelectEmail();
|
||||||
final mailboxContainCurrent = searchController.isSearchEmailRunning
|
final mailboxContainCurrent = searchController.isSearchEmailRunning
|
||||||
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
||||||
: currentMailbox;
|
: selectedMailbox;
|
||||||
if (mailboxContainCurrent != null) {
|
if (mailboxContainCurrent != null) {
|
||||||
moveSelectedMultipleEmailToMailbox(context, selectionEmail, mailboxContainCurrent);
|
moveSelectedMultipleEmailToMailbox(context, selectionEmail, mailboxContainCurrent);
|
||||||
}
|
}
|
||||||
@@ -951,7 +966,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
cancelSelectEmail();
|
cancelSelectEmail();
|
||||||
final mailboxContainCurrent = searchController.isSearchEmailRunning
|
final mailboxContainCurrent = searchController.isSearchEmailRunning
|
||||||
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
||||||
: currentMailbox;
|
: selectedMailbox;
|
||||||
if (mailboxContainCurrent != null) {
|
if (mailboxContainCurrent != null) {
|
||||||
moveSelectedMultipleEmailToTrash(selectionEmail, mailboxContainCurrent);
|
moveSelectedMultipleEmailToTrash(selectionEmail, mailboxContainCurrent);
|
||||||
}
|
}
|
||||||
@@ -959,7 +974,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
case EmailActionType.deletePermanently:
|
case EmailActionType.deletePermanently:
|
||||||
final mailboxContainCurrent = searchController.isSearchEmailRunning
|
final mailboxContainCurrent = searchController.isSearchEmailRunning
|
||||||
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
||||||
: currentMailbox;
|
: selectedMailbox;
|
||||||
if (mailboxContainCurrent != null) {
|
if (mailboxContainCurrent != null) {
|
||||||
deleteSelectionEmailsPermanently(
|
deleteSelectionEmailsPermanently(
|
||||||
context,
|
context,
|
||||||
@@ -973,7 +988,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
cancelSelectEmail();
|
cancelSelectEmail();
|
||||||
final mailboxContainCurrent = searchController.isSearchEmailRunning
|
final mailboxContainCurrent = searchController.isSearchEmailRunning
|
||||||
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
||||||
: currentMailbox;
|
: selectedMailbox;
|
||||||
if (mailboxContainCurrent != null) {
|
if (mailboxContainCurrent != null) {
|
||||||
moveSelectedMultipleEmailToSpam(selectionEmail, mailboxContainCurrent);
|
moveSelectedMultipleEmailToSpam(selectionEmail, mailboxContainCurrent);
|
||||||
}
|
}
|
||||||
@@ -1043,7 +1058,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool get isMailboxTrash => mailboxDashBoardController.selectedMailbox.value?.isTrash == true;
|
bool get isMailboxTrash => selectedMailbox?.isTrash == true;
|
||||||
|
|
||||||
void openMailboxLeftMenu() {
|
void openMailboxLeftMenu() {
|
||||||
mailboxDashBoardController.openMailboxMenuDrawer();
|
mailboxDashBoardController.openMailboxMenuDrawer();
|
||||||
@@ -1089,7 +1104,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
emailId: currentEmail.id,
|
emailId: currentEmail.id,
|
||||||
mailboxId: searchController.isSearchEmailRunning
|
mailboxId: searchController.isSearchEmailRunning
|
||||||
? currentEmail.mailboxContain?.mailboxId
|
? currentEmail.mailboxContain?.mailboxId
|
||||||
: currentMailbox?.id,
|
: selectedMailboxId,
|
||||||
searchQuery: searchController.isSearchEmailRunning
|
searchQuery: searchController.isSearchEmailRunning
|
||||||
? searchQuery
|
? searchQuery
|
||||||
: null,
|
: null,
|
||||||
@@ -1204,21 +1219,19 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool get isNewFolderCreated {
|
bool get isNewFolderCreated {
|
||||||
final currentMailbox = mailboxDashBoardController.selectedMailbox.value;
|
return selectedMailbox != null &&
|
||||||
return currentMailbox != null &&
|
selectedMailbox!.isPersonal &&
|
||||||
currentMailbox.isPersonal &&
|
!selectedMailbox!.isDefault;
|
||||||
!currentMailbox.isDefault;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void goToCreateEmailRuleView() async {
|
void goToCreateEmailRuleView() async {
|
||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = mailboxDashBoardController.accountId.value;
|
||||||
final session = mailboxDashBoardController.sessionCurrent;
|
final session = mailboxDashBoardController.sessionCurrent;
|
||||||
final currentMailbox = mailboxDashBoardController.selectedMailbox.value;
|
|
||||||
if (accountId != null && session != null) {
|
if (accountId != null && session != null) {
|
||||||
final arguments = RulesFilterCreatorArguments(
|
final arguments = RulesFilterCreatorArguments(
|
||||||
accountId,
|
accountId,
|
||||||
session,
|
session,
|
||||||
mailboxDestination: currentMailbox
|
mailboxDestination: selectedMailbox
|
||||||
);
|
);
|
||||||
|
|
||||||
final newRuleFilterRequest = PlatformInfo.isWeb
|
final newRuleFilterRequest = PlatformInfo.isWeb
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import 'package:tmail_ui_user/features/manage_account/presentation/vacation/widg
|
|||||||
import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_banner_widget.dart';
|
import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_banner_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/quotas/presentation/widget/quotas_banner_widget.dart';
|
import 'package:tmail_ui_user/features/quotas/presentation/widget/quotas_banner_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
||||||
|
import 'package:tmail_ui_user/features/thread/domain/state/get_all_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_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/presentation/model/delete_action_type.dart';
|
import 'package:tmail_ui_user/features/thread/presentation/model/delete_action_type.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/presentation/model/loading_more_status.dart';
|
import 'package:tmail_ui_user/features/thread/presentation/model/loading_more_status.dart';
|
||||||
@@ -68,7 +69,7 @@ class ThreadView extends GetWidget<ThreadController>
|
|||||||
... [
|
... [
|
||||||
Obx(() {
|
Obx(() {
|
||||||
return AppBarThreadWidget(
|
return AppBarThreadWidget(
|
||||||
mailboxSelected: controller.currentMailbox,
|
mailboxSelected: controller.selectedMailbox,
|
||||||
listEmailSelected: controller.mailboxDashBoardController.emailsInCurrentMailbox.listEmailSelected,
|
listEmailSelected: controller.mailboxDashBoardController.emailsInCurrentMailbox.listEmailSelected,
|
||||||
selectMode: controller.mailboxDashBoardController.currentSelectMode.value,
|
selectMode: controller.mailboxDashBoardController.currentSelectMode.value,
|
||||||
filterOption: controller.mailboxDashBoardController.filterMessageOption.value,
|
filterOption: controller.mailboxDashBoardController.filterMessageOption.value,
|
||||||
@@ -654,17 +655,26 @@ class ThreadView extends GetWidget<ThreadController>
|
|||||||
Widget _buildEmptyEmail(BuildContext context) {
|
Widget _buildEmptyEmail(BuildContext context) {
|
||||||
return Obx(() => controller.viewState.value.fold(
|
return Obx(() => controller.viewState.value.fold(
|
||||||
(failure) => const SizedBox.shrink(),
|
(failure) => const SizedBox.shrink(),
|
||||||
(success) => success is! LoadingState && success is! SearchingState
|
(success) {
|
||||||
? EmptyEmailsWidget(
|
if (success is! GetAllEmailLoading && success is! SearchingState) {
|
||||||
key: const Key('empty_thread_view'),
|
if (success is GetAllEmailSuccess
|
||||||
title: _getMessageEmptyEmail(context),
|
&& success.currentMailboxId != controller.selectedMailboxId) {
|
||||||
iconSVG: controller.imagePaths.icEmptyEmail,
|
return const SizedBox.shrink();
|
||||||
subTitle: _getSubMessageEmptyEmail(context),
|
} else {
|
||||||
onCreateFiltersActionCallback: controller.isNewFolderCreated
|
return EmptyEmailsWidget(
|
||||||
? controller.goToCreateEmailRuleView
|
key: const Key('empty_thread_view'),
|
||||||
: null,
|
title: _getMessageEmptyEmail(context),
|
||||||
)
|
iconSVG: controller.imagePaths.icEmptyEmail,
|
||||||
: const SizedBox.shrink())
|
subTitle: _getSubMessageEmptyEmail(context),
|
||||||
|
onCreateFiltersActionCallback: controller.isNewFolderCreated
|
||||||
|
? controller.goToCreateEmailRuleView
|
||||||
|
: null,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user