Skip to content

Commit 13367e4

Browse files
refactor: use useOnboardingMessages hook in components to prevent stale translations
1 parent bfdfd53 commit 13367e4

8 files changed

Lines changed: 23 additions & 14 deletions

File tree

src/components/EmbeddedDemo/index.native.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import React from 'react';
22
import WebView from 'react-native-webview';
3+
import useOnboardingMessages from '@hooks/useOnboardingMessages';
34
import useThemeStyles from '@hooks/useThemeStyles';
4-
import getOnboardingMessages from '@libs/actions/Welcome/OnboardingFlowTasks';
55
import type EmbeddedDemoProps from './types';
66

77
function EmbeddedDemo({url, webViewProps}: EmbeddedDemoProps) {
88
const styles = useThemeStyles();
9-
const {testDrive} = getOnboardingMessages();
9+
const {testDrive} = useOnboardingMessages();
1010

1111
return (
1212
<WebView

src/components/TestDrive/Modal/EmployeeTestDriveModal.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {InteractionManager} from 'react-native';
66
import TestReceipt from '@assets/images/fake-test-drive-employee-receipt.jpg';
77
import TextInput from '@components/TextInput';
88
import useLocalize from '@hooks/useLocalize';
9+
import useOnboardingMessages from '@hooks/useOnboardingMessages';
910
import {
1011
initMoneyRequest,
1112
setMoneyRequestAmount,
@@ -17,7 +18,6 @@ import {
1718
} from '@libs/actions/IOU';
1819
import {verifyTestDriveRecipient} from '@libs/actions/Onboarding';
1920
import setTestReceipt from '@libs/actions/setTestReceipt';
20-
import getOnboardingMessages from '@libs/actions/Welcome/OnboardingFlowTasks';
2121
import Navigation from '@libs/Navigation/Navigation';
2222
import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types';
2323
import type {TestDriveModalNavigatorParamList} from '@libs/Navigation/types';
@@ -73,7 +73,7 @@ function EmployeeTestDriveModal() {
7373
selected: true,
7474
},
7575
]);
76-
const {testDrive} = getOnboardingMessages();
76+
const {testDrive} = useOnboardingMessages();
7777
setMoneyRequestAmount(transactionID, testDrive.EMPLOYEE_FAKE_RECEIPT.AMOUNT, testDrive.EMPLOYEE_FAKE_RECEIPT.CURRENCY);
7878
setMoneyRequestDescription(transactionID, testDrive.EMPLOYEE_FAKE_RECEIPT.DESCRIPTION, true);
7979
setMoneyRequestMerchant(transactionID, testDrive.EMPLOYEE_FAKE_RECEIPT.MERCHANT, true);

src/components/TestDrive/TestDriveDemo.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import EmbeddedDemo from '@components/EmbeddedDemo';
55
import Modal from '@components/Modal';
66
import SafeAreaConsumer from '@components/SafeAreaConsumer';
77
import useEnvironment from '@hooks/useEnvironment';
8+
import useOnboardingMessages from '@hooks/useOnboardingMessages';
89
import useOnyx from '@hooks/useOnyx';
910
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1011
import useThemeStyles from '@hooks/useThemeStyles';
1112
import {completeTestDriveTask} from '@libs/actions/Task';
12-
import getOnboardingMessages from '@libs/actions/Welcome/OnboardingFlowTasks';
1313
import Navigation from '@libs/Navigation/Navigation';
1414
import {isAdminRoom} from '@libs/ReportUtils';
1515
import {getTestDriveURL} from '@libs/TourUtils';
@@ -28,7 +28,7 @@ function TestDriveDemo() {
2828
const [introSelected] = useOnyx(ONYXKEYS.NVP_INTRO_SELECTED, {canBeMissing: false});
2929
const viewTourReportID = introSelected?.viewTour;
3030
const [viewTourReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${viewTourReportID}`, {canBeMissing: true});
31-
const {testDrive} = getOnboardingMessages();
31+
const {testDrive} = useOnboardingMessages();
3232

3333
useEffect(() => {
3434
InteractionManager.runAfterInteractions(() => {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import {useMemo} from 'react';
2+
import useLocalize from '@hooks/useLocalize';
3+
import getOnboardingMessages from '@libs/actions/Welcome/OnboardingFlowTasks';
4+
5+
export default function useOnboardingMessages() {
6+
const {translate} = useLocalize();
7+
const onboardingMessages = useMemo(getOnboardingMessages, [translate]);
8+
return onboardingMessages;
9+
}

src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import type {ListItem} from '@components/SelectionList/types';
1818
import Text from '@components/Text';
1919
import useLocalize from '@hooks/useLocalize';
2020
import useNetwork from '@hooks/useNetwork';
21+
import useOnboardingMessages from '@hooks/useOnboardingMessages';
2122
import usePermissions from '@hooks/usePermissions';
2223
import usePrevious from '@hooks/usePrevious';
2324
import useResponsiveLayout from '@hooks/useResponsiveLayout';
@@ -28,7 +29,6 @@ import {openOldDotLink} from '@libs/actions/Link';
2829
import {createWorkspace, generatePolicyID} from '@libs/actions/Policy/Policy';
2930
import {completeOnboarding} from '@libs/actions/Report';
3031
import {setOnboardingAdminsChatReportID, setOnboardingPolicyID} from '@libs/actions/Welcome';
31-
import getOnboardingMessages from '@libs/actions/Welcome/OnboardingFlowTasks';
3232
import navigateAfterOnboarding from '@libs/navigateAfterOnboarding';
3333
import Navigation from '@libs/Navigation/Navigation';
3434
import {waitForIdle} from '@libs/Network/SequentialQueue';
@@ -217,7 +217,7 @@ function BaseOnboardingAccounting({shouldUseNativeStyles}: BaseOnboardingAccount
217217
setOnboardingPolicyID(policyID);
218218
}
219219

220-
const {onboardingMessages} = getOnboardingMessages();
220+
const {onboardingMessages} = useOnboardingMessages();
221221
completeOnboarding({
222222
engagementChoice: onboardingPurposeSelected,
223223
onboardingMessage: onboardingMessages[onboardingPurposeSelected],

src/pages/OnboardingPersonalDetails/BaseOnboardingPersonalDetails.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import TextInput from '@components/TextInput';
1111
import withCurrentUserPersonalDetails from '@components/withCurrentUserPersonalDetails';
1212
import useAutoFocusInput from '@hooks/useAutoFocusInput';
1313
import useLocalize from '@hooks/useLocalize';
14+
import useOnboardingMessages from '@hooks/useOnboardingMessages';
1415
import usePermissions from '@hooks/usePermissions';
1516
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1617
import useThemeStyles from '@hooks/useThemeStyles';
17-
import getOnboardingMessages from '@libs/actions/Welcome/OnboardingFlowTasks';
1818
import {addErrorMessage} from '@libs/ErrorUtils';
1919
import navigateAfterOnboarding from '@libs/navigateAfterOnboarding';
2020
import Navigation from '@libs/Navigation/Navigation';
@@ -62,7 +62,7 @@ function BaseOnboardingPersonalDetails({currentUserPersonalDetails, shouldUseNat
6262
if (!onboardingPurposeSelected) {
6363
return;
6464
}
65-
const {onboardingMessages} = getOnboardingMessages();
65+
const {onboardingMessages} = useOnboardingMessages();
6666
completeOnboardingReport({
6767
engagementChoice: onboardingPurposeSelected,
6868
onboardingMessage: onboardingMessages[onboardingPurposeSelected],

src/pages/OnboardingPurpose/BaseOnboardingPurpose.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import MenuItemList from '@components/MenuItemList';
1111
import ScreenWrapper from '@components/ScreenWrapper';
1212
import Text from '@components/Text';
1313
import useLocalize from '@hooks/useLocalize';
14+
import useOnboardingMessages from '@hooks/useOnboardingMessages';
1415
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1516
import useTheme from '@hooks/useTheme';
1617
import useThemeStyles from '@hooks/useThemeStyles';
17-
import getOnboardingMessages from '@libs/actions/Welcome/OnboardingFlowTasks';
1818
import Navigation from '@libs/Navigation/Navigation';
1919
import OnboardingRefManager from '@libs/OnboardingRefManager';
2020
import type {TOnboardingRef} from '@libs/OnboardingRefManager';
@@ -87,7 +87,7 @@ function BaseOnboardingPurpose({shouldUseNativeStyles, shouldEnableMaxHeight, ro
8787
}
8888

8989
if (isPrivateDomainAndHasAccessiblePolicies && personalDetailsForm?.firstName && personalDetailsForm?.lastName) {
90-
const {onboardingMessages} = getOnboardingMessages();
90+
const {onboardingMessages} = useOnboardingMessages();
9191
completeOnboarding({
9292
engagementChoice: choice,
9393
onboardingMessage: onboardingMessages[choice],

src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import UserListItem from '@components/SelectionList/UserListItem';
1111
import Text from '@components/Text';
1212
import useLocalize from '@hooks/useLocalize';
1313
import useNetwork from '@hooks/useNetwork';
14+
import useOnboardingMessages from '@hooks/useOnboardingMessages';
1415
import usePermissions from '@hooks/usePermissions';
1516
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1617
import useThemeStyles from '@hooks/useThemeStyles';
17-
import getOnboardingMessages from '@libs/actions/Welcome/OnboardingFlowTasks';
1818
import navigateAfterOnboarding from '@libs/navigateAfterOnboarding';
1919
import Navigation from '@libs/Navigation/Navigation';
2020
import {getDefaultWorkspaceAvatar} from '@libs/ReportUtils';
@@ -57,7 +57,7 @@ function BaseOnboardingWorkspaces({route, shouldUseNativeStyles}: BaseOnboarding
5757
} else {
5858
askToJoinPolicy(policy.policyID);
5959
}
60-
const {onboardingMessages} = getOnboardingMessages();
60+
const {onboardingMessages} = useOnboardingMessages();
6161
completeOnboarding({
6262
engagementChoice: CONST.ONBOARDING_CHOICES.LOOKING_AROUND,
6363
onboardingMessage: onboardingMessages[CONST.ONBOARDING_CHOICES.LOOKING_AROUND],

0 commit comments

Comments
 (0)