Skip to content

Commit 9757789

Browse files
authored
Merge pull request #46635 from nkdengineer/fix/45645
2 parents 3721596 + 0923d44 commit 9757789

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

src/ONYXKEYS.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -551,8 +551,8 @@ const ONYXKEYS = {
551551
SETTINGS_STATUS_SET_CLEAR_AFTER_FORM_DRAFT: 'settingsStatusSetClearAfterFormDraft',
552552
SETTINGS_STATUS_CLEAR_DATE_FORM: 'settingsStatusClearDateForm',
553553
SETTINGS_STATUS_CLEAR_DATE_FORM_DRAFT: 'settingsStatusClearDateFormDraft',
554-
CHANGE_BILLING_CURRENCY_FORM: 'changeBillingCurrencyForm',
555-
CHANGE_BILLING_CURRENCY_FORM_DRAFT: 'changeBillingCurrencyFormDraft',
554+
CHANGE_BILLING_CURRENCY_FORM: 'billingCurrencyForm',
555+
CHANGE_BILLING_CURRENCY_FORM_DRAFT: 'billingCurrencyFormDraft',
556556
PRIVATE_NOTES_FORM: 'privateNotesForm',
557557
PRIVATE_NOTES_FORM_DRAFT: 'privateNotesFormDraft',
558558
I_KNOW_A_TEACHER_FORM: 'iKnowTeacherForm',

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

+18-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, {useCallback, useMemo} from 'react';
1+
import React, {useCallback, useEffect, useMemo} from 'react';
22
import {View} from 'react-native';
33
import {useOnyx} from 'react-native-onyx';
44
import type {ValueOf} from 'type-fest';
@@ -7,6 +7,7 @@ import type {FormOnyxValues} from '@components/Form/types';
77
import HeaderWithBackButton from '@components/HeaderWithBackButton';
88
import ScreenWrapper from '@components/ScreenWrapper';
99
import useLocalize from '@hooks/useLocalize';
10+
import usePrevious from '@hooks/usePrevious';
1011
import useThemeStyles from '@hooks/useThemeStyles';
1112
import Navigation from '@navigation/Navigation';
1213
import * as PaymentMethods from '@userActions/PaymentMethods';
@@ -19,11 +20,24 @@ function ChangeBillingCurrency() {
1920
const [fundList] = useOnyx(ONYXKEYS.FUND_LIST);
2021
const defaultCard = useMemo(() => Object.values(fundList ?? {}).find((card) => card.accountData?.additionalData?.isBillingCard), [fundList]);
2122

22-
const changeBillingCurrency = useCallback((currency?: ValueOf<typeof CONST.PAYMENT_CARD_CURRENCY>, values?: FormOnyxValues<typeof ONYXKEYS.FORMS.CHANGE_BILLING_CURRENCY_FORM>) => {
23-
if (values?.securityCode) {
24-
PaymentMethods.updateBillingCurrency(currency ?? CONST.PAYMENT_CARD_CURRENCY.USD, values.securityCode);
23+
const [formData] = useOnyx(ONYXKEYS.FORMS.CHANGE_BILLING_CURRENCY_FORM);
24+
const formDataComplete = formData?.isLoading === false && !formData.errors;
25+
const prevIsLoading = usePrevious(formData?.isLoading);
26+
const prevFormDataComplete = usePrevious(formDataComplete);
27+
28+
useEffect(() => {
29+
if (!formDataComplete || prevFormDataComplete || !prevIsLoading) {
30+
return;
2531
}
2632
Navigation.goBack();
33+
}, [formDataComplete, prevFormDataComplete, prevIsLoading]);
34+
35+
const changeBillingCurrency = useCallback((currency?: ValueOf<typeof CONST.PAYMENT_CARD_CURRENCY>, values?: FormOnyxValues<typeof ONYXKEYS.FORMS.CHANGE_BILLING_CURRENCY_FORM>) => {
36+
if (!values?.securityCode) {
37+
Navigation.goBack();
38+
return;
39+
}
40+
PaymentMethods.updateBillingCurrency(currency ?? CONST.PAYMENT_CARD_CURRENCY.USD, values.securityCode);
2741
}, []);
2842

2943
return (

0 commit comments

Comments
 (0)