TF-3449 Update Mark as Important state when open draft email and reload page

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-02-20 08:30:52 +07:00
committed by Dat H. Pham
parent d2ee165f49
commit 94b6814ab1
6 changed files with 18 additions and 2 deletions
@@ -35,6 +35,7 @@ class SaveComposerCacheOnWebInteractor {
composerCache: ComposerCache( composerCache: ComposerCache(
email: emailCreated, email: emailCreated,
hasRequestReadReceipt: createEmailRequest.hasRequestReadReceipt, hasRequestReadReceipt: createEmailRequest.hasRequestReadReceipt,
isMarkAsImportant: createEmailRequest.isMarkAsImportant,
displayMode: createEmailRequest.displayMode displayMode: createEmailRequest.displayMode
)); ));
return Right(SaveComposerCacheSuccess()); return Right(SaveComposerCacheSuccess());
@@ -634,6 +634,7 @@ class ComposerController extends BaseController
emailId: arguments.presentationEmail!.id!, emailId: arguments.presentationEmail!.id!,
); );
_emailIdEditing = arguments.presentationEmail!.id!; _emailIdEditing = arguments.presentationEmail!.id!;
isMarkAsImportant.value = arguments.presentationEmail!.isMarkAsImportant;
break; break;
case EmailActionType.editSendingEmail: case EmailActionType.editSendingEmail:
_initEmailAddress( _initEmailAddress(
@@ -721,6 +722,7 @@ class ComposerController extends BaseController
if (!PlatformInfo.isWeb) return; if (!PlatformInfo.isWeb) return;
screenDisplayMode.value = arguments.displayMode; screenDisplayMode.value = arguments.displayMode;
isMarkAsImportant.value = arguments.isMarkAsImportant ?? false;
_initEmailAddress( _initEmailAddress(
presentationEmail: arguments.presentationEmail!, presentationEmail: arguments.presentationEmail!,
@@ -1316,6 +1318,7 @@ class ComposerController extends BaseController
identity: identitySelected.value, identity: identitySelected.value,
attachments: uploadController.attachmentsUploaded, attachments: uploadController.attachmentsUploaded,
hasReadReceipt: hasRequestReadReceipt.value, hasReadReceipt: hasRequestReadReceipt.value,
isMarkAsImportant: isMarkAsImportant.value,
); );
return savedEmailDraft.hashCode; return savedEmailDraft.hashCode;
@@ -13,6 +13,7 @@ class SavedEmailDraft with EquatableMixin {
final List<Attachment> attachments; final List<Attachment> attachments;
final Identity? identity; final Identity? identity;
final bool hasReadReceipt; final bool hasReadReceipt;
final bool isMarkAsImportant;
SavedEmailDraft({ SavedEmailDraft({
required this.content, required this.content,
@@ -24,6 +25,7 @@ class SavedEmailDraft with EquatableMixin {
required this.attachments, required this.attachments,
required this.identity, required this.identity,
required this.hasReadReceipt, required this.hasReadReceipt,
this.isMarkAsImportant = false,
}); });
factory SavedEmailDraft.empty() { factory SavedEmailDraft.empty() {
@@ -51,6 +53,7 @@ class SavedEmailDraft with EquatableMixin {
{3: replyToRecipients}, {3: replyToRecipients},
attachments, attachments,
identity, identity,
hasReadReceipt hasReadReceipt,
isMarkAsImportant,
]; ];
} }
@@ -29,6 +29,7 @@ class ComposerArguments extends RouterArguments {
final IdentityId? selectedIdentityId; final IdentityId? selectedIdentityId;
final List<Attachment>? inlineImages; final List<Attachment>? inlineImages;
final bool? hasRequestReadReceipt; final bool? hasRequestReadReceipt;
final bool? isMarkAsImportant;
final ScreenDisplayMode displayMode; final ScreenDisplayMode displayMode;
final List<EmailAddress>? cc; final List<EmailAddress>? cc;
final List<EmailAddress>? bcc; final List<EmailAddress>? bcc;
@@ -56,6 +57,7 @@ class ComposerArguments extends RouterArguments {
this.cc, this.cc,
this.bcc, this.bcc,
this.listPost, this.listPost,
this.isMarkAsImportant,
}); });
factory ComposerArguments.fromSendingEmail(SendingEmail sendingEmail) => factory ComposerArguments.fromSendingEmail(SendingEmail sendingEmail) =>
@@ -119,6 +121,7 @@ class ComposerArguments extends RouterArguments {
inlineImages: composerCache.email?.allAttachments.listAttachmentsDisplayedInContent, inlineImages: composerCache.email?.allAttachments.listAttachmentsDisplayedInContent,
hasRequestReadReceipt: composerCache.hasRequestReadReceipt, hasRequestReadReceipt: composerCache.hasRequestReadReceipt,
displayMode: composerCache.displayMode, displayMode: composerCache.displayMode,
isMarkAsImportant: composerCache.isMarkAsImportant,
); );
factory ComposerArguments.replyEmail({ factory ComposerArguments.replyEmail({
@@ -234,6 +237,7 @@ class ComposerArguments extends RouterArguments {
selectedIdentityId, selectedIdentityId,
inlineImages, inlineImages,
hasRequestReadReceipt, hasRequestReadReceipt,
isMarkAsImportant,
displayMode, displayMode,
cc, cc,
bcc, bcc,
@@ -258,6 +262,7 @@ class ComposerArguments extends RouterArguments {
IdentityId? selectedIdentityId, IdentityId? selectedIdentityId,
List<Attachment>? inlineImages, List<Attachment>? inlineImages,
bool? hasRequestReadReceipt, bool? hasRequestReadReceipt,
bool? isMarkAsImportant,
ScreenDisplayMode? displayMode, ScreenDisplayMode? displayMode,
List<EmailAddress>? cc, List<EmailAddress>? cc,
List<EmailAddress>? bcc, List<EmailAddress>? bcc,
@@ -281,6 +286,7 @@ class ComposerArguments extends RouterArguments {
selectedIdentityId: selectedIdentityId ?? this.selectedIdentityId, selectedIdentityId: selectedIdentityId ?? this.selectedIdentityId,
inlineImages: inlineImages ?? this.inlineImages, inlineImages: inlineImages ?? this.inlineImages,
hasRequestReadReceipt: hasRequestReadReceipt ?? this.hasRequestReadReceipt, hasRequestReadReceipt: hasRequestReadReceipt ?? this.hasRequestReadReceipt,
isMarkAsImportant: isMarkAsImportant ?? this.isMarkAsImportant,
displayMode: displayMode ?? this.displayMode, displayMode: displayMode ?? this.displayMode,
cc: cc ?? this.cc, cc: cc ?? this.cc,
bcc: bcc ?? this.bcc, bcc: bcc ?? this.bcc,
@@ -10,11 +10,13 @@ class ComposerCache with EquatableMixin {
final Email? email; final Email? email;
final bool? hasRequestReadReceipt; final bool? hasRequestReadReceipt;
final bool? isMarkAsImportant;
final ScreenDisplayMode displayMode; final ScreenDisplayMode displayMode;
ComposerCache({ ComposerCache({
this.email, this.email,
this.hasRequestReadReceipt, this.hasRequestReadReceipt,
this.isMarkAsImportant,
this.displayMode = ScreenDisplayMode.normal this.displayMode = ScreenDisplayMode.normal
}); });
@@ -26,6 +28,7 @@ class ComposerCache with EquatableMixin {
List<Object?> get props => [ List<Object?> get props => [
email, email,
hasRequestReadReceipt, hasRequestReadReceipt,
isMarkAsImportant,
displayMode displayMode
]; ];
} }
@@ -347,7 +347,7 @@ void main() {
replyToRecipients: {replyToRecipient}, replyToRecipients: {replyToRecipient},
identity: identity, identity: identity,
attachments: [attachment], attachments: [attachment],
hasReadReceipt: alwaysReadReceiptEnabled hasReadReceipt: alwaysReadReceiptEnabled,
); );
// act // act