TF-1961 Transform html email content in composer

(cherry picked from commit f5470c130744242195b265a0ea4aad044ad8e740)
This commit is contained in:
dab246
2023-08-18 19:42:04 +07:00
committed by Dat Vu
parent e06d35f1e1
commit 8eed49fd73
45 changed files with 1139 additions and 644 deletions
@@ -1,4 +1,5 @@
import 'dart:convert';
import 'package:collection/collection.dart';
import 'package:core/core.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:model/model.dart';
@@ -11,13 +12,9 @@ class SessionStorageComposerDatasourceImpl
@override
ComposerCache getComposerCacheOnWeb() {
try {
final result = html.window.sessionStorage.entries
.where((e) => e.key == EmailActionType.edit.name)
.toList();
if (result.isNotEmpty) {
final jsonHandle =
json.decode(result.first.value) as Map<String, dynamic>;
final emailCache = ComposerCache.fromJson(jsonHandle);
final result = html.window.sessionStorage.entries.firstWhereOrNull((e) => e.key == EmailActionType.reopenComposerBrowser.name);
if (result != null) {
final emailCache = ComposerCache.fromJson(jsonDecode(result.value));
return emailCache;
} else {
throw NotFoundInWebSessionException();
@@ -30,8 +27,7 @@ class SessionStorageComposerDatasourceImpl
@override
void removeComposerCacheOnWeb() {
try {
html.window.sessionStorage
.removeWhere((key, value) => key == EmailActionType.edit.name);
html.window.sessionStorage.removeWhere((key, value) => key == EmailActionType.reopenComposerBrowser.name);
} catch (e) {
throw NotFoundInWebSessionException(errorMessage: e.toString());
}
@@ -41,7 +37,7 @@ class SessionStorageComposerDatasourceImpl
void saveComposerCacheOnWeb(Email email) {
try {
Map<String, String> entries = {
EmailActionType.edit.name: json.encode(email.toJson())
EmailActionType.reopenComposerBrowser.name: email.asString()
};
html.window.sessionStorage.addAll(entries);
} catch (e) {