TF-3480 Handle reopen multiple composer when reload page or session expired
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
+17
-1
@@ -30,6 +30,20 @@ extension OpenAndCloseComposerExtension on MailboxDashBoardController {
|
||||
}
|
||||
}
|
||||
|
||||
void openListComposer(List<ComposerArguments> listArguments) {
|
||||
final newListArguments = listArguments
|
||||
.map((argument) => argument.withIdentity(
|
||||
identities: List.from(listIdentities),
|
||||
selectedIdentityId: argument.selectedIdentityId,
|
||||
))
|
||||
.toList();
|
||||
|
||||
composerManager.addListComposer(newListArguments);
|
||||
if (!twakeAppManager.hasComposer) {
|
||||
twakeAppManager.setHasComposer(true);
|
||||
}
|
||||
}
|
||||
|
||||
void _openComposerOnWeb(ComposerArguments composerArguments) {
|
||||
composerManager.addComposer(composerArguments);
|
||||
if (!twakeAppManager.hasComposer) {
|
||||
@@ -99,7 +113,9 @@ extension OpenAndCloseComposerExtension on MailboxDashBoardController {
|
||||
|
||||
_handleResultAfterCloseComposer(result);
|
||||
|
||||
await removeComposerCacheOnWeb();
|
||||
if (composerId != null) {
|
||||
await removeComposerCacheByIdOnWeb(composerId);
|
||||
}
|
||||
}
|
||||
|
||||
void _handleResultAfterCloseComposer(dynamic result) {
|
||||
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||
|
||||
extension ReopenComposerCacheExtension on MailboxDashBoardController {
|
||||
|
||||
void handleGetComposerCacheSuccess(GetComposerCacheSuccess success) {
|
||||
removeAllComposerCacheOnWeb();
|
||||
|
||||
final listComposerCacheSortByIndex = success.listComposerCache
|
||||
..sort((a, b) => (a.composerIndex ?? 0).compareTo(b.composerIndex ?? 0));
|
||||
|
||||
final listArguments = listComposerCacheSortByIndex
|
||||
.map((composerCache) => ComposerArguments.fromSessionStorageBrowser(composerCache))
|
||||
.toList();
|
||||
|
||||
openListComposer(listArguments);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user