TF-2469 Fix email set into root mailbox's SENT instead of team mailbox's SENT (#3482)

This commit is contained in:
Dat Dang
2025-02-18 14:06:08 +07:00
committed by GitHub
parent ca3905cb7a
commit 636df94458
6 changed files with 106 additions and 9 deletions
@@ -0,0 +1,22 @@
import 'package:collection/collection.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.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 defaultDraftsMailbox = mailboxDashBoardController.mapDefaultMailboxIdByRole[
PresentationMailbox.roleDrafts
];
final lowercaseDraftsRole = PresentationMailbox.roleDrafts.value.toLowerCase();
return mailboxDashBoardController.mapMailboxById.entries
.firstWhereOrNull((entry) {
final mailbox = entry.value;
return mailbox.emailTeamMailBoxes == identitySelected.value?.email &&
mailbox.name?.name.toLowerCase() == lowercaseDraftsRole;
})
?.key ?? defaultDraftsMailbox;
}
}
@@ -0,0 +1,22 @@
import 'package:collection/collection.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.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 GetOutboxMailboxIdForComposerExtension on ComposerController {
MailboxId? getOutboxMailboxIdForComposer() {
final defaultOutboxMailbox = mailboxDashBoardController.mapDefaultMailboxIdByRole[
PresentationMailbox.roleOutbox
];
final lowercaseOutboxRole = PresentationMailbox.roleOutbox.value.toLowerCase();
return mailboxDashBoardController.mapMailboxById.entries
.firstWhereOrNull((entry) {
final mailbox = entry.value;
return mailbox.emailTeamMailBoxes == identitySelected.value?.email &&
mailbox.name?.name.toLowerCase() == lowercaseOutboxRole;
})
?.key ?? defaultOutboxMailbox;
}
}
@@ -0,0 +1,21 @@
import 'package:collection/collection.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
extension GetSentMailboxIdForComposerExtension on ComposerController {
MailboxId? getSentMailboxIdForComposer() {
final defaultSentMailbox = mailboxDashBoardController.mapDefaultMailboxIdByRole[
PresentationMailbox.roleSent
];
final lowercaseSentRole = PresentationMailbox.roleSent.value.toLowerCase();
return mailboxDashBoardController.mapMailboxById.entries
.firstWhereOrNull((entry) {
final mailbox = entry.value;
return mailbox.emailTeamMailBoxes == identitySelected.value?.email &&
mailbox.name?.name.toLowerCase() == lowercaseSentRole;
})
?.key ?? defaultSentMailbox;
}
}