From da67ba07ca793d697cba3f08adf7dfdffb8ec04c Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 29 Dec 2025 14:46:27 +0700 Subject: [PATCH] TF-4141 Fix separator still not reactive to selection mode changes. --- lib/features/base/mixin/ai_scribe_mixin.dart | 4 ++ .../list_mailbox_node_extension.dart | 2 +- .../widgets/mailbox_item_widget.dart | 1 + .../email/presentation/search_email_view.dart | 39 ++++++++++--------- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/lib/features/base/mixin/ai_scribe_mixin.dart b/lib/features/base/mixin/ai_scribe_mixin.dart index bd39b24e7..73deda6d6 100644 --- a/lib/features/base/mixin/ai_scribe_mixin.dart +++ b/lib/features/base/mixin/ai_scribe_mixin.dart @@ -15,6 +15,10 @@ mixin AiScribeMixin { return session.getAICapability(accountId); } + /// Returns whether the AI Scribe endpoint is available for the given session and account. + /// + /// Returns `true` if the account has AI capability with an available Scribe endpoint, + /// `false` otherwise (including when session or accountId are null). bool isAIScribeEndpointAvailable({Session? session, AccountId? accountId}) { final aiCapability = getAICapability( session: session, diff --git a/lib/features/mailbox/presentation/extensions/list_mailbox_node_extension.dart b/lib/features/mailbox/presentation/extensions/list_mailbox_node_extension.dart index b6c9de626..a98656456 100644 --- a/lib/features/mailbox/presentation/extensions/list_mailbox_node_extension.dart +++ b/lib/features/mailbox/presentation/extensions/list_mailbox_node_extension.dart @@ -26,7 +26,7 @@ extension ListMailboxNodeExtension on List { } /// Insert [newNode] after the first mailbox matching [priorities]. - /// If none match, inserts at the beginning. + /// If no priorities match (or [priorities] is empty), inserts at the beginning. void insertAfterByPriority( MailboxNode newNode, List priorities, diff --git a/lib/features/mailbox/presentation/widgets/mailbox_item_widget.dart b/lib/features/mailbox/presentation/widgets/mailbox_item_widget.dart index c92f33099..434a77dcb 100644 --- a/lib/features/mailbox/presentation/widgets/mailbox_item_widget.dart +++ b/lib/features/mailbox/presentation/widgets/mailbox_item_widget.dart @@ -330,6 +330,7 @@ class _MailboxItemWidgetState extends State { } // Dragging action-required mailboxes must not show highlight + // because they're virtual folders that don't accept email drops if (widget.isDraggingMailbox && widget.mailboxNode.item.isActionRequired) { return AppColor.colorBgDesktop; } diff --git a/lib/features/search/email/presentation/search_email_view.dart b/lib/features/search/email/presentation/search_email_view.dart index d61cb3db5..6bae4a297 100644 --- a/lib/features/search/email/presentation/search_email_view.dart +++ b/lib/features/search/email/presentation/search_email_view.dart @@ -676,28 +676,29 @@ class SearchEmailView extends GetWidget listPresentationEmail[index], ), separatorBuilder: (context, index) { - final isMobile = PlatformInfo.isMobile; - final isInactive = - controller.selectionMode.value == SelectMode.INACTIVE; + return Obx(() { + final isMobile = PlatformInfo.isMobile; + final isInactive = + controller.selectionMode.value == SelectMode.INACTIVE; - final dividerColor = isMobile - ? null - : (isInactive ? null : Colors.white); + final dividerColor = + isMobile ? null : (isInactive ? null : Colors.white); - final padding = isMobile - ? SearchEmailUtils.getPaddingItemListMobile( - context, - controller.responsiveUtils, - ) - : ItemEmailTileStyles.getPaddingDividerWeb( - context, - controller.responsiveUtils, - ); + final padding = isMobile + ? SearchEmailUtils.getPaddingItemListMobile( + context, + controller.responsiveUtils, + ) + : ItemEmailTileStyles.getPaddingDividerWeb( + context, + controller.responsiveUtils, + ); - return Padding( - padding: padding, - child: Divider(color: dividerColor), - ); + return Padding( + padding: padding, + child: Divider(color: dividerColor), + ); + }); }, ) );