Skip to content

Commit 0acc12a

Browse files
authored
Merge pull request Expensify#67473 from nkdengineer/fix/66168
fix: autoRenew is not enabled in the control plan
2 parents e03ed72 + 69b84e3 commit 0acc12a

18 files changed

Lines changed: 57 additions & 29 deletions
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import ONYXKEYS from '@src/ONYXKEYS';
2+
import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue';
3+
import useOnyx from './useOnyx';
4+
5+
function usePrivateSubscription() {
6+
const [privateSubscription, privateSubscriptionResult] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
7+
8+
if (isLoadingOnyxValue(privateSubscriptionResult)) {
9+
return undefined;
10+
}
11+
12+
return privateSubscription
13+
? {
14+
...privateSubscription,
15+
autoRenew: privateSubscription.autoRenew ?? true,
16+
}
17+
: undefined;
18+
}
19+
20+
export default usePrivateSubscription;

src/hooks/useSubscriptionPossibleCostSavings.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import CONST from '@src/CONST';
2-
import ONYXKEYS from '@src/ONYXKEYS';
3-
import useOnyx from './useOnyx';
42
import usePreferredCurrency from './usePreferredCurrency';
3+
import usePrivateSubscription from './usePrivateSubscription';
54
import useSubscriptionPlan from './useSubscriptionPlan';
65

76
const POSSIBLE_COST_SAVINGS = {
@@ -30,7 +29,7 @@ const POSSIBLE_COST_SAVINGS = {
3029
function useSubscriptionPossibleCostSavings(): number {
3130
const preferredCurrency = usePreferredCurrency();
3231
const subscriptionPlan = useSubscriptionPlan();
33-
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
32+
const privateSubscription = usePrivateSubscription();
3433

3534
if (!subscriptionPlan || !privateSubscription?.type) {
3635
return 0;

src/hooks/useSubscriptionPrice.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import CONST from '@src/CONST';
2-
import ONYXKEYS from '@src/ONYXKEYS';
32
import useHasTeam2025Pricing from './useHasTeam2025Pricing';
4-
import useOnyx from './useOnyx';
53
import usePreferredCurrency from './usePreferredCurrency';
4+
import usePrivateSubscription from './usePrivateSubscription';
65
import useSubscriptionPlan from './useSubscriptionPlan';
76

87
function useSubscriptionPrice(): number {
98
const preferredCurrency = usePreferredCurrency();
109
const subscriptionPlan = useSubscriptionPlan();
1110
const hasTeam2025Pricing = useHasTeam2025Pricing();
12-
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION);
11+
const privateSubscription = usePrivateSubscription();
1312
const subscriptionType = privateSubscription?.type;
1413

1514
if (!subscriptionPlan || !subscriptionType) {

src/pages/settings/InitialSettingsPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import withCurrentUserPersonalDetails from '@components/withCurrentUserPersonalD
2323
import useLocalize from '@hooks/useLocalize';
2424
import useNetwork from '@hooks/useNetwork';
2525
import useOnyx from '@hooks/useOnyx';
26+
import usePrivateSubscription from '@hooks/usePrivateSubscription';
2627
import useResponsiveLayout from '@hooks/useResponsiveLayout';
2728
import useSingleExecution from '@hooks/useSingleExecution';
2829
import useSubscriptionPlan from '@hooks/useSubscriptionPlan';
@@ -106,7 +107,7 @@ function InitialSettingsPage({currentUserPersonalDetails}: InitialSettingsPagePr
106107
const isScreenFocused = useIsSidebarRouteActive(NAVIGATORS.SETTINGS_SPLIT_NAVIGATOR, shouldUseNarrowLayout);
107108
const hasActivatedWallet = ([CONST.WALLET.TIER_NAME.GOLD, CONST.WALLET.TIER_NAME.PLATINUM] as string[]).includes(userWallet?.tierName ?? '');
108109

109-
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
110+
const privateSubscription = usePrivateSubscription();
110111
const subscriptionPlan = useSubscriptionPlan();
111112

112113
const shouldLogout = useRef(false);

src/pages/settings/Security/MergeAccounts/AccountDetailsPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput';
1717
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1818
import useLocalize from '@hooks/useLocalize';
1919
import useOnyx from '@hooks/useOnyx';
20+
import usePrivateSubscription from '@hooks/usePrivateSubscription';
2021
import useThemeStyles from '@hooks/useThemeStyles';
2122
import {addErrorMessage, getLatestErrorMessage} from '@libs/ErrorUtils';
2223
import {getPhoneLogin, validateNumber} from '@libs/LoginUtils';
@@ -61,7 +62,7 @@ function AccountDetailsPage() {
6162
const navigation = useNavigation();
6263
const [userEmailOrPhone] = useOnyx(ONYXKEYS.SESSION, {selector: (session) => session?.email, canBeMissing: true});
6364
const [getValidateCodeForAccountMerge] = useOnyx(ONYXKEYS.ACCOUNT, {selector: (account) => account?.getValidateCodeForAccountMerge, canBeMissing: true});
64-
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
65+
const privateSubscription = usePrivateSubscription();
6566
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
6667
const {params} = useRoute<PlatformStackRouteProp<SettingsNavigatorParamList, typeof SCREENS.SETTINGS.MERGE_ACCOUNTS.ACCOUNT_DETAILS>>();
6768
const [email, setEmail] = useState(params?.email ?? '');

src/pages/settings/Security/MergeAccounts/AccountValidatePage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import type {ValidateCodeFormHandle} from '@components/ValidateCodeActionModal/V
1111
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1212
import useLocalize from '@hooks/useLocalize';
1313
import useOnyx from '@hooks/useOnyx';
14+
import usePrivateSubscription from '@hooks/usePrivateSubscription';
1415
import useThemeStyles from '@hooks/useThemeStyles';
1516
import {getLatestErrorMessage} from '@libs/ErrorUtils';
1617
import Navigation from '@libs/Navigation/Navigation';
@@ -84,7 +85,7 @@ function AccountValidatePage() {
8485
canBeMissing: true,
8586
});
8687

87-
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
88+
const privateSubscription = usePrivateSubscription();
8889
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
8990

9091
const {params} = useRoute<PlatformStackRouteProp<SettingsNavigatorParamList, typeof SCREENS.SETTINGS.MERGE_ACCOUNTS.ACCOUNT_VALIDATE>>();

src/pages/settings/Security/SecuritySettingsPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import TextLink from '@components/TextLink';
2525
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
2626
import useLocalize from '@hooks/useLocalize';
2727
import useOnyx from '@hooks/useOnyx';
28+
import usePrivateSubscription from '@hooks/usePrivateSubscription';
2829
import useResponsiveLayout from '@hooks/useResponsiveLayout';
2930
import useThemeStyles from '@hooks/useThemeStyles';
3031
import useWaitForNavigation from '@hooks/useWaitForNavigation';
@@ -62,7 +63,7 @@ function SecuritySettingsPage() {
6263
const personalDetails = usePersonalDetails();
6364
const [account] = useOnyx(ONYXKEYS.ACCOUNT, {canBeMissing: true});
6465
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
65-
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
66+
const privateSubscription = usePrivateSubscription();
6667
const isUserValidated = account?.validated;
6768
const delegateButtonRef = useRef<HTMLDivElement | null>(null);
6869

src/pages/settings/Subscription/CardSection/CardSection.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import useHasTeam2025Pricing from '@hooks/useHasTeam2025Pricing';
1212
import useLocalize from '@hooks/useLocalize';
1313
import useNetwork from '@hooks/useNetwork';
1414
import useOnyx from '@hooks/useOnyx';
15+
import usePrivateSubscription from '@hooks/usePrivateSubscription';
1516
import useSubscriptionPlan from '@hooks/useSubscriptionPlan';
1617
import useTheme from '@hooks/useTheme';
1718
import useThemeStyles from '@hooks/useThemeStyles';
@@ -44,7 +45,7 @@ function CardSection() {
4445
const styles = useThemeStyles();
4546
const theme = useTheme();
4647
const [account] = useOnyx(ONYXKEYS.ACCOUNT, {canBeMissing: true});
47-
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
48+
const privateSubscription = usePrivateSubscription();
4849
const [privateStripeCustomerID] = useOnyx(ONYXKEYS.NVP_PRIVATE_STRIPE_CUSTOMER_ID, {canBeMissing: true});
4950
const [authenticationLink] = useOnyx(ONYXKEYS.VERIFY_3DS_SUBSCRIPTION, {canBeMissing: true});
5051
const [session] = useOnyx(ONYXKEYS.SESSION, {canBeMissing: true});

src/pages/settings/Subscription/FreeTrial.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Button from '@components/Button';
66
import {Star} from '@components/Icon/Expensicons';
77
import useNetwork from '@hooks/useNetwork';
88
import useOnyx from '@hooks/useOnyx';
9+
import usePrivateSubscription from '@hooks/usePrivateSubscription';
910
import useThemeStyles from '@hooks/useThemeStyles';
1011
import Navigation from '@libs/Navigation/Navigation';
1112
import {getFreeTrialText} from '@libs/SubscriptionUtils';
@@ -25,7 +26,7 @@ function FreeTrial({badgeStyles, pressable = false, addSpacing = false, success
2526
const [policies] = useOnyx(ONYXKEYS.COLLECTION.POLICY, {canBeMissing: true});
2627
const [firstDayFreeTrial] = useOnyx(ONYXKEYS.NVP_FIRST_DAY_FREE_TRIAL, {canBeMissing: true});
2728
const [lastDayFreeTrial] = useOnyx(ONYXKEYS.NVP_LAST_DAY_FREE_TRIAL, {canBeMissing: true});
28-
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
29+
const privateSubscription = usePrivateSubscription();
2930

3031
const [freeTrialText, setFreeTrialText] = useState<string | undefined>(undefined);
3132
const {isOffline} = useNetwork();

src/pages/settings/Subscription/PaymentCard/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import useLocalize from '@hooks/useLocalize';
1414
import useOnyx from '@hooks/useOnyx';
1515
import usePreferredCurrency from '@hooks/usePreferredCurrency';
1616
import usePrevious from '@hooks/usePrevious';
17+
import usePrivateSubscription from '@hooks/usePrivateSubscription';
1718
import useSubscriptionPlan from '@hooks/useSubscriptionPlan';
1819
import useSubscriptionPrice from '@hooks/useSubscriptionPrice';
1920
import useThemeStyles from '@hooks/useThemeStyles';
@@ -29,7 +30,7 @@ import ROUTES from '@src/ROUTES';
2930
function AddPaymentCard() {
3031
const styles = useThemeStyles();
3132
const {translate} = useLocalize();
32-
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: false});
33+
const privateSubscription = usePrivateSubscription();
3334
const [accountID] = useOnyx(ONYXKEYS.SESSION, {selector: (session) => session?.accountID ?? CONST.DEFAULT_NUMBER_ID, canBeMissing: false});
3435

3536
const subscriptionPlan = useSubscriptionPlan();

0 commit comments

Comments
 (0)