From df659041d0184fc121a308dabf3fab22a281ea0c Mon Sep 17 00:00:00 2001 From: Sibtain Ali Date: Tue, 8 Apr 2025 15:27:00 +0500 Subject: [PATCH 1/3] put merge account behind beta --- .../Security/SecuritySettingsPage.tsx | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/pages/settings/Security/SecuritySettingsPage.tsx b/src/pages/settings/Security/SecuritySettingsPage.tsx index b5d3d5a98fcb..5af4379cc90d 100644 --- a/src/pages/settings/Security/SecuritySettingsPage.tsx +++ b/src/pages/settings/Security/SecuritySettingsPage.tsx @@ -23,6 +23,7 @@ import Section from '@components/Section'; import Text from '@components/Text'; import TextLink from '@components/TextLink'; import useLocalize from '@hooks/useLocalize'; +import usePermissions from '@hooks/usePermissions'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import useWaitForNavigation from '@hooks/useWaitForNavigation'; @@ -49,6 +50,7 @@ function SecuritySettingsPage() { const {shouldUseNarrowLayout} = useResponsiveLayout(); const {windowWidth} = useWindowDimensions(); const personalDetails = usePersonalDetails(); + const {canUseMergeAccounts} = usePermissions(); const [account] = useOnyx(ONYXKEYS.ACCOUNT); const delegateButtonRef = useRef(null); @@ -117,11 +119,13 @@ function SecuritySettingsPage() { icon: Expensicons.Shield, action: isActingAsDelegate ? showDelegateNoAccessMenu : waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_2FA_ROOT.getRoute())), }, - { - translationKey: 'mergeAccountsPage.mergeAccount', - icon: Expensicons.ArrowCollapse, - action: waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_MERGE_ACCOUNTS.route)), - }, + canUseMergeAccounts + ? { + translationKey: 'mergeAccountsPage.mergeAccount', + icon: Expensicons.ArrowCollapse, + action: waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_MERGE_ACCOUNTS.route)), + } + : null, { translationKey: 'closeAccountPage.closeAccount', icon: Expensicons.ClosedSign, @@ -129,16 +133,18 @@ function SecuritySettingsPage() { }, ]; - return baseMenuItems.map((item) => ({ - key: item.translationKey, - title: translate(item.translationKey as TranslationPaths), - icon: item.icon, - onPress: item.action, - shouldShowRightIcon: true, - link: '', - wrapperStyle: [styles.sectionMenuItemTopDescription], - })); - }, [translate, waitForNavigate, styles, isActingAsDelegate]); + return baseMenuItems + .filter((item) => !!item) + .map((item) => ({ + key: item.translationKey, + title: translate(item.translationKey as TranslationPaths), + icon: item.icon, + onPress: item.action, + shouldShowRightIcon: true, + link: '', + wrapperStyle: [styles.sectionMenuItemTopDescription], + })); + }, [translate, waitForNavigate, styles, isActingAsDelegate, canUseMergeAccounts]); const delegateMenuItems: MenuItemProps[] = useMemo( () => From 8569661f9a32d1a891b942c65444e14314a208f7 Mon Sep 17 00:00:00 2001 From: Sibtain Ali Date: Tue, 8 Apr 2025 17:53:18 +0500 Subject: [PATCH 2/3] lint errors --- .../Security/SecuritySettingsPage.tsx | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/src/pages/settings/Security/SecuritySettingsPage.tsx b/src/pages/settings/Security/SecuritySettingsPage.tsx index 5af4379cc90d..58e77f368b2c 100644 --- a/src/pages/settings/Security/SecuritySettingsPage.tsx +++ b/src/pages/settings/Security/SecuritySettingsPage.tsx @@ -119,31 +119,30 @@ function SecuritySettingsPage() { icon: Expensicons.Shield, action: isActingAsDelegate ? showDelegateNoAccessMenu : waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_2FA_ROOT.getRoute())), }, - canUseMergeAccounts - ? { - translationKey: 'mergeAccountsPage.mergeAccount', - icon: Expensicons.ArrowCollapse, - action: waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_MERGE_ACCOUNTS.route)), - } - : null, - { - translationKey: 'closeAccountPage.closeAccount', - icon: Expensicons.ClosedSign, - action: isActingAsDelegate ? showDelegateNoAccessMenu : waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_CLOSE)), - }, ]; - return baseMenuItems - .filter((item) => !!item) - .map((item) => ({ - key: item.translationKey, - title: translate(item.translationKey as TranslationPaths), - icon: item.icon, - onPress: item.action, - shouldShowRightIcon: true, - link: '', - wrapperStyle: [styles.sectionMenuItemTopDescription], - })); + if (canUseMergeAccounts) { + baseMenuItems.push({ + translationKey: 'mergeAccountsPage.mergeAccount', + icon: Expensicons.ArrowCollapse, + action: waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_MERGE_ACCOUNTS.route)), + }); + } + + baseMenuItems.push({ + translationKey: 'closeAccountPage.closeAccount', + icon: Expensicons.ClosedSign, + action: isActingAsDelegate ? showDelegateNoAccessMenu : waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_CLOSE)), + }); + return baseMenuItems.map((item) => ({ + key: item.translationKey, + title: translate(item.translationKey as TranslationPaths), + icon: item.icon, + onPress: item.action, + shouldShowRightIcon: true, + link: '', + wrapperStyle: [styles.sectionMenuItemTopDescription], + })); }, [translate, waitForNavigate, styles, isActingAsDelegate, canUseMergeAccounts]); const delegateMenuItems: MenuItemProps[] = useMemo( From 1f4d2fe41c5abe849ae0f05d741a8f406b12d89d Mon Sep 17 00:00:00 2001 From: Sibtain Ali Date: Tue, 8 Apr 2025 18:15:55 +0500 Subject: [PATCH 3/3] lint errors --- src/pages/settings/Security/SecuritySettingsPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/settings/Security/SecuritySettingsPage.tsx b/src/pages/settings/Security/SecuritySettingsPage.tsx index 58e77f368b2c..c73f1406dfc7 100644 --- a/src/pages/settings/Security/SecuritySettingsPage.tsx +++ b/src/pages/settings/Security/SecuritySettingsPage.tsx @@ -125,7 +125,7 @@ function SecuritySettingsPage() { baseMenuItems.push({ translationKey: 'mergeAccountsPage.mergeAccount', icon: Expensicons.ArrowCollapse, - action: waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_MERGE_ACCOUNTS.route)), + action: isActingAsDelegate ? showDelegateNoAccessMenu : waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_MERGE_ACCOUNTS.route)), }); }