TF-4392 [Team Mailbox] Auto save draft email team mailbox when edit

This commit is contained in:
dab246
2026-03-30 16:16:29 +07:00
committed by Dat H. Pham
parent 9feef8da99
commit beb323874b
7 changed files with 53 additions and 31 deletions
@@ -1,20 +1,30 @@
import 'package:collection/collection.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/email/email_action_type.dart';
import 'package:model/extensions/presentation_mailbox_extension.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
extension GetDraftMailboxIdForComposerExtension on ComposerController {
MailboxId? getDraftMailboxIdForComposer() {
final savedDraftMailboxId = composerArguments.value?.savedDraftMailboxId;
if (currentEmailActionType == EmailActionType.editDraft &&
savedDraftMailboxId != null) {
return savedDraftMailboxId;
}
final defaultDraftsMailbox = mailboxDashBoardController.mapDefaultMailboxIdByRole[
PresentationMailbox.roleDrafts
];
final lowercaseDraftsRole = PresentationMailbox.roleDrafts.value.toLowerCase();
final identityEmail = identitySelected.value?.email;
return mailboxDashBoardController.mapMailboxById.entries
.firstWhereOrNull((entry) {
if (identityEmail == null) return false;
final mailbox = entry.value;
return mailbox.emailTeamMailBoxes == identitySelected.value?.email &&
return mailbox.emailTeamMailBoxes == identityEmail &&
mailbox.name?.name.toLowerCase() == lowercaseDraftsRole;
})
?.key ?? defaultDraftsMailbox;