TF-4392 [Team Mailbox] Move email to trash on delete in Email List View

This commit is contained in:
dab246
2026-03-26 13:09:17 +07:00
committed by Dat H. Pham
parent 865940450e
commit db8ae35c9d
9 changed files with 656 additions and 18 deletions
@@ -0,0 +1,33 @@
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/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
extension GetTrashMailboxIdAndPathExtension on MailboxDashBoardController {
({MailboxId? trashId, String? trashPath}) getTrashMailboxIdAndPath(
PresentationMailbox emailMailbox,
) {
final defaultResult = (
trashId: mapDefaultMailboxIdByRole[PresentationMailbox.roleTrash],
trashPath: null as String?,
);
final mailbox = selectedMailbox.value ?? emailMailbox;
if (mailbox.isPersonal) return defaultResult;
final namespace = mailbox.namespace;
if (namespace == null) return defaultResult;
final trashId = findDefaultMailboxIdInTeamMailbox(
namespace: namespace,
mailboxName: PresentationMailbox.trashRole,
);
if (trashId == null) return defaultResult;
final trashPath = getTeamMailboxNodePathWithSeparator(
mailboxId: trashId,
);
return (trashId: trashId, trashPath: trashPath);
}
}