From 84b568cd56bd169667dfc0c87cbcd4bc836c8080 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 16 Aug 2024 09:45:13 +0700 Subject: [PATCH] Add disableAction to the rest of item in MoreFeaturePage --- .../workspace/WorkspaceMoreFeaturesPage.tsx | 37 +++++++++---------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx b/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx index 47af86b53315..b04f2f676f7f 100644 --- a/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx +++ b/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx @@ -76,6 +76,13 @@ function WorkspaceMoreFeaturesPage({policy, route}: WorkspaceMoreFeaturesPagePro const [isReportFieldsWarningModalOpen, setIsReportFieldsWarningModalOpen] = useState(false); const [isDisableExpensifyCardWarningModalOpen, setIsDisableExpensifyCardWarningModalOpen] = useState(false); + const onDisabledOrganizeSwitchPress = useCallback(() => { + if (!hasAccountingConnection) { + return; + } + setIsOrganizeWarningModalOpen(true); + }, [hasAccountingConnection]); + const spendItems: Item[] = [ { icon: Illustrations.Car, @@ -149,15 +156,12 @@ function WorkspaceMoreFeaturesPage({policy, route}: WorkspaceMoreFeaturesPagePro subtitleTranslationKey: 'workspace.moreFeatures.categories.subtitle', isActive: policy?.areCategoriesEnabled ?? false, disabled: hasAccountingConnection, + disabledAction: onDisabledOrganizeSwitchPress, pendingAction: policy?.pendingFields?.areCategoriesEnabled, action: (isEnabled: boolean) => { if (!policyID) { return; } - if (hasAccountingConnection) { - setIsOrganizeWarningModalOpen(true); - return; - } Category.enablePolicyCategories(policyID, isEnabled); }, }, @@ -168,14 +172,11 @@ function WorkspaceMoreFeaturesPage({policy, route}: WorkspaceMoreFeaturesPagePro isActive: policy?.areTagsEnabled ?? false, disabled: hasAccountingConnection, pendingAction: policy?.pendingFields?.areTagsEnabled, + disabledAction: onDisabledOrganizeSwitchPress, action: (isEnabled: boolean) => { if (!policyID) { return; } - if (hasAccountingConnection) { - setIsOrganizeWarningModalOpen(true); - return; - } Tag.enablePolicyTags(policyID, isEnabled); }, }, @@ -186,14 +187,11 @@ function WorkspaceMoreFeaturesPage({policy, route}: WorkspaceMoreFeaturesPagePro isActive: (policy?.tax?.trackingEnabled ?? false) || isSyncTaxEnabled, disabled: hasAccountingConnection, pendingAction: policy?.pendingFields?.tax, + disabledAction: onDisabledOrganizeSwitchPress, action: (isEnabled: boolean) => { if (!policyID) { return; } - if (hasAccountingConnection) { - setIsOrganizeWarningModalOpen(true); - return; - } Policy.enablePolicyTaxes(policyID, isEnabled); }, }, @@ -204,14 +202,11 @@ function WorkspaceMoreFeaturesPage({policy, route}: WorkspaceMoreFeaturesPagePro isActive: policy?.areReportFieldsEnabled ?? false, disabled: hasAccountingConnection, pendingAction: policy?.pendingFields?.areReportFieldsEnabled, + disabledAction: onDisabledOrganizeSwitchPress, action: (isEnabled: boolean) => { if (!policyID) { return; } - if (hasAccountingConnection) { - setIsOrganizeWarningModalOpen(true); - return; - } if (isEnabled) { if (!isControlPolicy(policy)) { Navigation.navigate( @@ -235,12 +230,14 @@ function WorkspaceMoreFeaturesPage({policy, route}: WorkspaceMoreFeaturesPagePro subtitleTranslationKey: 'workspace.moreFeatures.connections.subtitle', isActive: isAccountingEnabled, pendingAction: policy?.pendingFields?.areConnectionsEnabled, - action: (isEnabled: boolean) => { - if (!policyID) { + disabledAction: () => { + if (!hasAccountingConnection) { return; } - if (hasAccountingConnection) { - setIsIntegrateWarningModalOpen(true); + setIsIntegrateWarningModalOpen(true); + }, + action: (isEnabled: boolean) => { + if (!policyID) { return; } Policy.enablePolicyConnections(policyID, isEnabled);