diff --git a/lib/features/destination_picker/presentation/destination_picker_view.dart b/lib/features/destination_picker/presentation/destination_picker_view.dart index 0efaff874b..6b54bcf199 100644 --- a/lib/features/destination_picker/presentation/destination_picker_view.dart +++ b/lib/features/destination_picker/presentation/destination_picker_view.dart @@ -481,8 +481,12 @@ class DestinationPickerView extends GetWidget color: Colors.transparent, child: InkWell( onTap: () { - controller.selectMailboxAction(PresentationMailbox.unifiedMailbox); - controller.dispatchSelectMailboxDestination(context); + if (mailboxIdSelected != null + && mailboxIdSelected != PresentationMailbox.unifiedMailbox.id + ) { + controller.selectMailboxAction(PresentationMailbox.unifiedMailbox); + controller.dispatchSelectMailboxDestination(context); + } }, customBorder: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(8))), hoverColor: AppColor.colorMailboxHovered, @@ -511,15 +515,16 @@ class DestinationPickerView extends GetWidget ), )), const SizedBox(width: 8), - if (actions == MailboxActions.select && (mailboxIdSelected == null || - mailboxIdSelected == PresentationMailbox.unifiedMailbox.id)) + if (_validateDisplaySelectedIcon( + actions: actions, + mailboxIdSelected: mailboxIdSelected + )) Padding( - padding: EdgeInsets.only( - right: AppUtils.isDirectionRTL(context) ? 0 : 30.0, - left: AppUtils.isDirectionRTL(context) ? 30 : 0.0, - ), + padding: const EdgeInsetsDirectional.only(end: 30.0), child: SvgPicture.asset( - controller.imagePaths.icFilterSelected, + actions == MailboxActions.create + ? controller.imagePaths.icSelectedSB + : controller.imagePaths.icFilterSelected, width: 20, height: 20, fit: BoxFit.fill @@ -532,6 +537,14 @@ class DestinationPickerView extends GetWidget ); } + bool _validateDisplaySelectedIcon({ + MailboxActions? actions, + MailboxId? mailboxIdSelected + }) { + return (actions == MailboxActions.select || actions == MailboxActions.create) + && (mailboxIdSelected == null || mailboxIdSelected == PresentationMailbox.unifiedMailbox.id); + } + void _handleOpenMailboxNodeClick(MailboxNode mailboxNode) { PresentationMailbox presentationMailbox; final path = controller.findNodePath(mailboxNode.item.id) diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index 6d1e6769be..7dfc930dc5 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -1716,19 +1716,17 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo if (destinationMailbox is! PresentationMailbox) return; - if (destinationMailbox != PresentationMailbox.unifiedMailbox && - mailboxIdSelected != destinationMailbox.id) { - - searchController.updateFilterEmail( - mailboxOption: Some(destinationMailbox), - beforeOption: const None(), - positionOption: searchController.sortOrderFiltered.value.isScrollByPosition() - ? const Some(0) - : const None() - ); + searchController.updateFilterEmail( + mailboxOption: destinationMailbox.id == PresentationMailbox.unifiedMailbox.id + ? const None() + : Some(destinationMailbox), + beforeOption: const None(), + positionOption: searchController.sortOrderFiltered.value.isScrollByPosition() + ? const Some(0) + : const None() + ); - dispatchAction(StartSearchEmailAction()); - } + dispatchAction(StartSearchEmailAction()); } void selectReceiveTimeQuickSearchFilter(BuildContext context, EmailReceiveTimeType receiveTime) { diff --git a/lib/features/search/email/presentation/search_email_controller.dart b/lib/features/search/email/presentation/search_email_controller.dart index c9e8cd558f..4e8299ebfe 100644 --- a/lib/features/search/email/presentation/search_email_controller.dart +++ b/lib/features/search/email/presentation/search_email_controller.dart @@ -600,19 +600,20 @@ class SearchEmailController extends BaseController ? await DialogRouter.pushGeneralDialog(routeName: AppRoutes.destinationPicker, arguments: arguments) : await push(AppRoutes.destinationPicker, arguments: arguments); - if (destinationMailbox is PresentationMailbox) { - final mailboxSelected = destinationMailbox == PresentationMailbox.unifiedMailbox ? null : destinationMailbox; - if (mailboxSelected != null && mailbox?.id != mailboxSelected.id) { - _updateSimpleSearchFilter( - mailboxOption: Some(mailboxSelected), - beforeOption: const None(), - positionOption: emailSortOrderType.value.isScrollByPosition() ? const Some(0) : const None() - ); + if (destinationMailbox is! PresentationMailbox) return; - if (context.mounted) { - _searchEmailAction(context); - } - } + _updateSimpleSearchFilter( + mailboxOption: destinationMailbox.id == PresentationMailbox.unifiedMailbox.id + ? const None() + : Some(destinationMailbox), + beforeOption: const None(), + positionOption: emailSortOrderType.value.isScrollByPosition() + ? const Some(0) + : const None() + ); + + if (context.mounted) { + _searchEmailAction(context); } }