handle session when reload
This commit is contained in:
+8
-6
@@ -6,7 +6,8 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/model/composer_cac
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/session_storage_composer_datasource.dart';
|
||||
import 'package:universal_html/html.dart' as html;
|
||||
|
||||
class SessionStorageComposerDatasourceImpl extends SessionStorageComposerDatasource {
|
||||
class SessionStorageComposerDatasourceImpl
|
||||
extends SessionStorageComposerDatasource {
|
||||
@override
|
||||
ComposerCache getComposerCacheOnWeb() {
|
||||
try {
|
||||
@@ -14,14 +15,15 @@ class SessionStorageComposerDatasourceImpl extends SessionStorageComposerDatasou
|
||||
.where((e) => e.key == EmailActionType.edit.name)
|
||||
.toList();
|
||||
if (result.isNotEmpty) {
|
||||
final jsonHandle = json.decode(result.first.value) as Map<String, dynamic>;
|
||||
final jsonHandle =
|
||||
json.decode(result.first.value) as Map<String, dynamic>;
|
||||
final emailCache = ComposerCache.fromJson(jsonHandle);
|
||||
return emailCache;
|
||||
} else {
|
||||
throw SessionWebException();
|
||||
throw NotFoundInWebSessionException();
|
||||
}
|
||||
} catch (e) {
|
||||
throw SessionWebException(errorMessage: e.toString());
|
||||
throw NotFoundInWebSessionException(errorMessage: e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +33,7 @@ class SessionStorageComposerDatasourceImpl extends SessionStorageComposerDatasou
|
||||
html.window.sessionStorage
|
||||
.removeWhere((key, value) => key == EmailActionType.edit.name);
|
||||
} catch (e) {
|
||||
throw SessionWebException(errorMessage: e.toString());
|
||||
throw NotFoundInWebSessionException(errorMessage: e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +45,7 @@ class SessionStorageComposerDatasourceImpl extends SessionStorageComposerDatasou
|
||||
};
|
||||
html.window.sessionStorage.addAll(entries);
|
||||
} catch (e) {
|
||||
throw SessionWebException(errorMessage: e.toString());
|
||||
throw SaveToWebSessionFailException(errorMessage: e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+23
-23
@@ -125,26 +125,28 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
}
|
||||
|
||||
void _handleComposerCache() async {
|
||||
_getEmailCacheOnWebInteractor.execute().fold(
|
||||
(failure) {},
|
||||
(success) {
|
||||
if(success is GetComposerCacheSuccess){
|
||||
final ComposerArguments composerArguments = ComposerArguments(
|
||||
emailActionType: EmailActionType.edit,
|
||||
presentationEmail: PresentationEmail(
|
||||
success.composerCache.id,
|
||||
subject: success.composerCache.subject,
|
||||
from: success.composerCache.from,
|
||||
to: success.composerCache.to,
|
||||
cc: success.composerCache.cc,
|
||||
bcc: success.composerCache.bcc,
|
||||
),
|
||||
emailContents: success.composerCache.emailContentList,
|
||||
);
|
||||
openComposerOverlay(composerArguments);
|
||||
}
|
||||
},
|
||||
);
|
||||
if (kIsWeb && userProfile.value != null) {
|
||||
_getEmailCacheOnWebInteractor.execute().fold(
|
||||
(failure) {},
|
||||
(success) {
|
||||
if(success is GetComposerCacheSuccess){
|
||||
final ComposerArguments composerArguments = ComposerArguments(
|
||||
emailActionType: EmailActionType.edit,
|
||||
presentationEmail: PresentationEmail(
|
||||
success.composerCache.id,
|
||||
subject: success.composerCache.subject,
|
||||
from: success.composerCache.from,
|
||||
to: success.composerCache.to,
|
||||
cc: success.composerCache.cc,
|
||||
bcc: success.composerCache.bcc,
|
||||
),
|
||||
emailContents: success.composerCache.emailContentList,
|
||||
);
|
||||
openComposerOverlay(composerArguments);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -247,9 +249,6 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
|
||||
void _getUserProfile() async {
|
||||
userProfile.value = sessionCurrent != null ? UserProfile(sessionCurrent!.username.value) : null;
|
||||
if (kIsWeb && userProfile.value != null) {
|
||||
_handleComposerCache();
|
||||
}
|
||||
}
|
||||
|
||||
void _setSessionCurrent() {
|
||||
@@ -427,6 +426,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
sessionCurrent = session;
|
||||
accountId.value = sessionCurrent?.accounts.keys.first;
|
||||
_getUserProfile();
|
||||
_handleComposerCache();
|
||||
}
|
||||
|
||||
UnsignedInt? get maxSizeAttachmentsPerEmail {
|
||||
|
||||
Reference in New Issue
Block a user