TF-2901 Implement caching composer on log out

This commit is contained in:
DatDang
2024-06-18 15:24:02 +07:00
committed by Dat H. Pham
parent c4bffd6626
commit b2c92388f2
18 changed files with 507 additions and 185 deletions
@@ -1,4 +1,9 @@
import 'package:core/presentation/utils/html_transformer/transform_configuration.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/user_name.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:tmail_ui_user/features/composer/presentation/model/screen_display_mode.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/session_storage_composer_datasource.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/model/composer_cache.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart';
@@ -10,17 +15,46 @@ class ComposerCacheRepositoryImpl extends ComposerCacheRepository {
ComposerCacheRepositoryImpl(this.composerCacheDataSource);
@override
ComposerCache getComposerCacheOnWeb() {
return composerCacheDataSource.getComposerCacheOnWeb();
Future<ComposerCache> getComposerCacheOnWeb(
AccountId accountId,
UserName userName
) {
return composerCacheDataSource.getComposerCacheOnWeb(accountId, userName);
}
@override
void removeComposerCacheOnWeb() {
Future<void> removeComposerCacheOnWeb() {
return composerCacheDataSource.removeComposerCacheOnWeb();
}
@override
void saveComposerCacheOnWeb(Email email) {
return composerCacheDataSource.saveComposerCacheOnWeb(email);
Future<void> saveComposerCacheOnWeb(
Email email,
{
required AccountId accountId,
required UserName userName,
required ScreenDisplayMode displayMode,
Identity? identity,
bool? readReceipentEnabled
}
) {
return composerCacheDataSource.saveComposerCacheOnWeb(
email,
accountId: accountId,
userName: userName,
displayMode: displayMode,
identity: identity,
readReceipentEnabled: readReceipentEnabled);
}
@override
Future<String> restoreEmailInlineImages(
String htmlContent,
TransformConfiguration transformConfiguration,
Map<String, String> mapUrlDownloadCID) {
return composerCacheDataSource.restoreEmailInlineImages(
htmlContent,
transformConfiguration,
mapUrlDownloadCID);
}
}