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(
email: emailCreated,
hasRequestReadReceipt: createEmailRequest.hasRequestReadReceipt,
isMarkAsImportant: createEmailRequest.isMarkAsImportant,
displayMode: createEmailRequest.displayMode
));
return Right(SaveComposerCacheSuccess());
@@ -634,6 +634,7 @@ class ComposerController extends BaseController
emailId: arguments.presentationEmail!.id!,
);
_emailIdEditing = arguments.presentationEmail!.id!;
isMarkAsImportant.value = arguments.presentationEmail!.isMarkAsImportant;
break;
case EmailActionType.editSendingEmail:
_initEmailAddress(
@@ -721,6 +722,7 @@ class ComposerController extends BaseController
if (!PlatformInfo.isWeb) return;
screenDisplayMode.value = arguments.displayMode;
isMarkAsImportant.value = arguments.isMarkAsImportant ?? false;
_initEmailAddress(
presentationEmail: arguments.presentationEmail!,
@@ -1316,6 +1318,7 @@ class ComposerController extends BaseController
identity: identitySelected.value,
attachments: uploadController.attachmentsUploaded,
hasReadReceipt: hasRequestReadReceipt.value,
isMarkAsImportant: isMarkAsImportant.value,
);
return savedEmailDraft.hashCode;
@@ -13,6 +13,7 @@ class SavedEmailDraft with EquatableMixin {
final List<Attachment> attachments;
final Identity? identity;
final bool hasReadReceipt;
final bool isMarkAsImportant;
SavedEmailDraft({
required this.content,
@@ -24,6 +25,7 @@ class SavedEmailDraft with EquatableMixin {
required this.attachments,
required this.identity,
required this.hasReadReceipt,
this.isMarkAsImportant = false,
});
factory SavedEmailDraft.empty() {
@@ -51,6 +53,7 @@ class SavedEmailDraft with EquatableMixin {
{3: replyToRecipients},
attachments,
identity,
hasReadReceipt
hasReadReceipt,
isMarkAsImportant,
];
}
@@ -29,6 +29,7 @@ class ComposerArguments extends RouterArguments {
final IdentityId? selectedIdentityId;
final List<Attachment>? inlineImages;
final bool? hasRequestReadReceipt;
final bool? isMarkAsImportant;
final ScreenDisplayMode displayMode;
final List<EmailAddress>? cc;
final List<EmailAddress>? bcc;
@@ -56,6 +57,7 @@ class ComposerArguments extends RouterArguments {
this.cc,
this.bcc,
this.listPost,
this.isMarkAsImportant,
});
factory ComposerArguments.fromSendingEmail(SendingEmail sendingEmail) =>
@@ -119,6 +121,7 @@ class ComposerArguments extends RouterArguments {
inlineImages: composerCache.email?.allAttachments.listAttachmentsDisplayedInContent,
hasRequestReadReceipt: composerCache.hasRequestReadReceipt,
displayMode: composerCache.displayMode,
isMarkAsImportant: composerCache.isMarkAsImportant,
);
factory ComposerArguments.replyEmail({
@@ -234,6 +237,7 @@ class ComposerArguments extends RouterArguments {
selectedIdentityId,
inlineImages,
hasRequestReadReceipt,
isMarkAsImportant,
displayMode,
cc,
bcc,
@@ -258,6 +262,7 @@ class ComposerArguments extends RouterArguments {
IdentityId? selectedIdentityId,
List<Attachment>? inlineImages,
bool? hasRequestReadReceipt,
bool? isMarkAsImportant,
ScreenDisplayMode? displayMode,
List<EmailAddress>? cc,
List<EmailAddress>? bcc,
@@ -281,6 +286,7 @@ class ComposerArguments extends RouterArguments {
selectedIdentityId: selectedIdentityId ?? this.selectedIdentityId,
inlineImages: inlineImages ?? this.inlineImages,
hasRequestReadReceipt: hasRequestReadReceipt ?? this.hasRequestReadReceipt,
isMarkAsImportant: isMarkAsImportant ?? this.isMarkAsImportant,
displayMode: displayMode ?? this.displayMode,
cc: cc ?? this.cc,
bcc: bcc ?? this.bcc,
@@ -10,11 +10,13 @@ class ComposerCache with EquatableMixin {
final Email? email;
final bool? hasRequestReadReceipt;
final bool? isMarkAsImportant;
final ScreenDisplayMode displayMode;
ComposerCache({
this.email,
this.hasRequestReadReceipt,
this.isMarkAsImportant,
this.displayMode = ScreenDisplayMode.normal
});
@@ -26,6 +28,7 @@ class ComposerCache with EquatableMixin {
List<Object?> get props => [
email,
hasRequestReadReceipt,
isMarkAsImportant,
displayMode
];
}
@@ -347,7 +347,7 @@ void main() {
replyToRecipients: {replyToRecipient},
identity: identity,
attachments: [attachment],
hasReadReceipt: alwaysReadReceiptEnabled
hasReadReceipt: alwaysReadReceiptEnabled,
);
// act