From b819d697141b2ad1ec7edc83e29fe740572b619d Mon Sep 17 00:00:00 2001 From: Sachin Chavda Date: Wed, 4 Jun 2025 03:59:45 +0530 Subject: [PATCH] smallScreen/selectionMode - toggle the selection on selectRow --- src/pages/workspace/WorkspaceMembersPage.tsx | 13 ++++++++++++- .../distanceRates/PolicyDistanceRatesPage.tsx | 13 ++++++++++++- src/pages/workspace/tags/WorkspaceViewTagsPage.tsx | 13 ++++++++++++- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/pages/workspace/WorkspaceMembersPage.tsx b/src/pages/workspace/WorkspaceMembersPage.tsx index 506c8f5a864c..3220e7eeb1db 100644 --- a/src/pages/workspace/WorkspaceMembersPage.tsx +++ b/src/pages/workspace/WorkspaceMembersPage.tsx @@ -381,6 +381,17 @@ function WorkspaceMembersPage({personalDetails, route, policy}: WorkspaceMembers [isPolicyAdmin, policy, policyID, route.params.policyID], ); + const toggleOrNavigate = useCallback( + (item: MemberOption) => { + if (shouldUseNarrowLayout && selectionMode?.isEnabled) { + toggleUser(item.accountID); + return; + } + openMemberDetails(item); + }, + [shouldUseNarrowLayout, selectionMode, openMemberDetails, toggleUser], + ); + /** * Dismisses the errors on one item */ @@ -794,7 +805,7 @@ function WorkspaceMembersPage({personalDetails, route, policy}: WorkspaceMembers shouldUseUserSkeletonView disableKeyboardShortcuts={removeMembersConfirmModalVisible} headerMessage={shouldUseNarrowLayout ? headerMessage : undefined} - onSelectRow={openMemberDetails} + onSelectRow={toggleOrNavigate} shouldSingleExecuteRowSelect={!isPolicyAdmin} onCheckboxPress={(item) => toggleUser(item.accountID)} onSelectAll={filteredData.length > 0 ? () => toggleAllUsers(filteredData) : undefined} diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx index a1ef02cb5a9c..39f85c27741f 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx @@ -243,6 +243,9 @@ function PolicyDistanceRatesPage({ }; const toggleRate = (rate: RateForList) => { + if (rate.isDisabledCheckbox) { + return; + } setSelectedDistanceRates((prevSelectedRates) => { if (prevSelectedRates.includes(rate.value)) { return prevSelectedRates.filter((selectedRate) => selectedRate !== rate.value); @@ -263,6 +266,14 @@ function PolicyDistanceRatesPage({ } }; + const toggleOrNavigate = (rate: RateForList) => { + if (shouldUseNarrowLayout && selectionMode?.isEnabled) { + toggleRate(rate); + return; + } + openRateDetails(rate); + }; + const getCustomListHeader = () => { if (filteredDistanceRatesList.length === 0) { return null; @@ -427,7 +438,7 @@ function PolicyDistanceRatesPage({ shouldUseDefaultRightHandSideCheckmark={false} selectedItems={selectedDistanceRates} onCheckboxPress={toggleRate} - onSelectRow={openRateDetails} + onSelectRow={toggleOrNavigate} onSelectAll={filteredDistanceRatesList.length > 0 ? toggleAllRates : undefined} onDismissError={dismissError} ListItem={TableListItem} diff --git a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx index fb68b24e30bd..8adc34fe4b82 100644 --- a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx @@ -166,6 +166,9 @@ function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) { } const toggleTag = (tag: TagListItem) => { + if (tag.isDisabledCheckbox) { + return; + } setSelectedTags((prev) => { if (prev.includes(tag.value)) { return prev.filter((selectedTag) => selectedTag !== tag.value); @@ -202,6 +205,14 @@ function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) { ); }; + const toggleOrNavigate = (tag: TagListItem) => { + if (shouldUseNarrowLayout && selectionMode?.isEnabled) { + toggleTag(tag); + return; + } + navigateToTagSettings(tag); + }; + const deleteTags = () => { deletePolicyTags(policyID, selectedTags); setIsDeleteTagsConfirmModalVisible(false); @@ -405,7 +416,7 @@ function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) { selectedItems={selectedTags} shouldUseDefaultRightHandSideCheckmark={false} onCheckboxPress={toggleTag} - onSelectRow={navigateToTagSettings} + onSelectRow={toggleOrNavigate} onSelectAll={filteredTagList.length > 0 ? toggleAllTags : undefined} showScrollIndicator ListItem={TableListItem}