TF-4053 Implement move folder content on mailbox list view

This commit is contained in:
dab246
2025-10-29 14:56:07 +07:00
committed by Dat H. Pham
parent ac99fccfb0
commit 58c05c38b2
19 changed files with 313 additions and 28 deletions
@@ -103,7 +103,9 @@ class DestinationPickerController extends BaseMailboxController {
void handleSuccessViewState(Success success) async {
super.handleSuccessViewState(success);
if (success is GetAllMailboxSuccess) {
if (mailboxAction.value == MailboxActions.move && mailboxIdSelected != null) {
if ((mailboxAction.value == MailboxActions.move ||
mailboxAction.value == MailboxActions.moveFolderContent) &&
mailboxIdSelected != null) {
await buildTree(
success.mailboxList.listSubscribedMailboxesAndDefaultMailboxes,
mailboxIdSelected: mailboxIdSelected);
@@ -249,9 +251,11 @@ class DestinationPickerController extends BaseMailboxController {
void searchMailbox(BuildContext context, String value) {
searchQuery.value = SearchQuery(value);
final searchableMailboxList = mailboxAction.value == MailboxActions.moveEmail
? allMailboxes
: allMailboxes.listPersonalMailboxes;
final searchableMailboxList =
mailboxAction.value == MailboxActions.moveEmail ||
mailboxAction.value == MailboxActions.moveFolderContent
? allMailboxes
: allMailboxes.listPersonalMailboxes;
final mailboxListWithDisplayName = searchableMailboxList
.map((mailbox) => mailbox.withDisplayName(mailbox.getDisplayName(context)))
@@ -296,8 +296,10 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
}
}),
Obx(() {
if (controller.teamMailboxesIsNotEmpty
&& controller.mailboxAction.value == MailboxActions.moveEmail) {
if (controller.teamMailboxesIsNotEmpty &&
(controller.mailboxAction.value == MailboxActions.moveEmail ||
controller.mailboxAction.value ==
MailboxActions.moveFolderContent)) {
return Column(
mainAxisSize: MainAxisSize.min,
children: [
@@ -158,6 +158,7 @@ class DestinationPickerSearchMailboxItemBuilder extends StatelessWidget {
(
mailboxActions == MailboxActions.select ||
mailboxActions == MailboxActions.create ||
mailboxActions == MailboxActions.moveEmail
mailboxActions == MailboxActions.moveEmail ||
mailboxActions == MailboxActions.moveFolderContent
);
}