TF-4141 Fix separator still not reactive to selection mode changes.

This commit is contained in:
dab246
2025-12-29 14:46:27 +07:00
committed by Dat H. Pham
parent a30c84dd62
commit da67ba07ca
4 changed files with 26 additions and 20 deletions
@@ -15,6 +15,10 @@ mixin AiScribeMixin {
return session.getAICapability(accountId); 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}) { bool isAIScribeEndpointAvailable({Session? session, AccountId? accountId}) {
final aiCapability = getAICapability( final aiCapability = getAICapability(
session: session, session: session,
@@ -26,7 +26,7 @@ extension ListMailboxNodeExtension on List<MailboxNode> {
} }
/// Insert [newNode] after the first mailbox matching [priorities]. /// 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( void insertAfterByPriority(
MailboxNode newNode, MailboxNode newNode,
List<bool Function(MailboxNode)> priorities, List<bool Function(MailboxNode)> priorities,
@@ -330,6 +330,7 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
} }
// Dragging action-required mailboxes must not show highlight // 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) { if (widget.isDraggingMailbox && widget.mailboxNode.item.isActionRequired) {
return AppColor.colorBgDesktop; return AppColor.colorBgDesktop;
} }
@@ -676,28 +676,29 @@ class SearchEmailView extends GetWidget<SearchEmailController>
listPresentationEmail[index], listPresentationEmail[index],
), ),
separatorBuilder: (context, index) { separatorBuilder: (context, index) {
final isMobile = PlatformInfo.isMobile; return Obx(() {
final isInactive = final isMobile = PlatformInfo.isMobile;
controller.selectionMode.value == SelectMode.INACTIVE; final isInactive =
controller.selectionMode.value == SelectMode.INACTIVE;
final dividerColor = isMobile final dividerColor =
? null isMobile ? null : (isInactive ? null : Colors.white);
: (isInactive ? null : Colors.white);
final padding = isMobile final padding = isMobile
? SearchEmailUtils.getPaddingItemListMobile( ? SearchEmailUtils.getPaddingItemListMobile(
context, context,
controller.responsiveUtils, controller.responsiveUtils,
) )
: ItemEmailTileStyles.getPaddingDividerWeb( : ItemEmailTileStyles.getPaddingDividerWeb(
context, context,
controller.responsiveUtils, controller.responsiveUtils,
); );
return Padding( return Padding(
padding: padding, padding: padding,
child: Divider(color: dividerColor), child: Divider(color: dividerColor),
); );
});
}, },
) )
); );