Skip to content

Commit e90d2a2

Browse files
fix: use preferredLocale in useOnboardingMessages hook
1 parent 7757eee commit e90d2a2

2 files changed

Lines changed: 52 additions & 51 deletions

File tree

src/hooks/useOnboardingMessages/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import {getOnboardingMessages} from '@libs/actions/Welcome/OnboardingFlow';
44

55
export default function useOnboardingMessages() {
66
const {preferredLocale} = useLocalize();
7-
// Adding preferredLocale as dependency because getOnboardingMessages depends on the current locale
8-
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
9-
const onboardingMessages = useMemo(() => getOnboardingMessages(), [preferredLocale]);
7+
const onboardingMessages = useMemo(() => getOnboardingMessages(preferredLocale), [preferredLocale]);
108
return onboardingMessages;
119
}

src/libs/actions/Welcome/OnboardingFlow.ts

Lines changed: 51 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import {findFocusedRoute, getStateFromPath} from '@react-navigation/native';
22
import type {NavigationState, PartialState} from '@react-navigation/native';
33
import Onyx from 'react-native-onyx';
44
import type {ValueOf} from 'type-fest';
5-
import {translateLocal} from '@libs/Localize';
5+
import {translate} from '@libs/Localize';
6+
import BaseLocaleListener from '@libs/Localize/LocaleListener/BaseLocaleListener';
67
import getAdaptedStateFromPath from '@libs/Navigation/helpers/getAdaptedStateFromPath';
78
import {linkingConfig} from '@libs/Navigation/linkingConfig';
89
import {navigationRef} from '@libs/Navigation/Navigation';
@@ -12,7 +13,7 @@ import CONST from '@src/CONST';
1213
import NAVIGATORS from '@src/NAVIGATORS';
1314
import ONYXKEYS from '@src/ONYXKEYS';
1415
import ROUTES from '@src/ROUTES';
15-
import type Onboarding from '@src/types/onyx/Onboarding';
16+
import type {Locale, Onboarding} from '@src/types/onyx';
1617

1718
let onboardingInitialPath = '';
1819
const onboardingLastVisitedPathConnection = Onyx.connect({
@@ -140,53 +141,54 @@ function getOnboardingInitialPath(getOnboardingInitialPathParams: GetOnboardingI
140141
return onboardingInitialPath;
141142
}
142143

143-
const getOnboardingMessages = () => {
144+
const getOnboardingMessages = (locale?: Locale) => {
145+
const resolvedLocale = locale ?? BaseLocaleListener.getPreferredLocale();
144146
const testDrive = {
145-
ONBOARDING_TASK_NAME: translateLocal('onboarding.testDrive.name', {}),
147+
ONBOARDING_TASK_NAME: translate(resolvedLocale, 'onboarding.testDrive.name', {}),
146148
EMBEDDED_DEMO_WHITELIST: ['http://', 'https://', 'about:'] as string[],
147-
EMBEDDED_DEMO_IFRAME_TITLE: translateLocal('onboarding.testDrive.embeddedDemoIframeTitle'),
149+
EMBEDDED_DEMO_IFRAME_TITLE: translate(resolvedLocale, 'onboarding.testDrive.embeddedDemoIframeTitle'),
148150
EMPLOYEE_FAKE_RECEIPT: {
149151
AMOUNT: 2000,
150152
CURRENCY: 'USD',
151-
DESCRIPTION: translateLocal('onboarding.testDrive.employeeFakeReceipt.description'),
153+
DESCRIPTION: translate(resolvedLocale, 'onboarding.testDrive.employeeFakeReceipt.description'),
152154
MERCHANT: "Tommy's Tires",
153155
},
154156
};
155157
const createReportTask: OnboardingTask = {
156158
type: 'createReport',
157159
autoCompleted: false,
158160
mediaAttributes: {},
159-
title: translateLocal('onboarding.tasks.createReportTask.title'),
160-
description: translateLocal('onboarding.tasks.createReportTask.description'),
161+
title: translate(resolvedLocale, 'onboarding.tasks.createReportTask.title'),
162+
description: translate(resolvedLocale, 'onboarding.tasks.createReportTask.description'),
161163
};
162164
const testDriveAdminTask: OnboardingTask = {
163165
type: 'viewTour',
164166
autoCompleted: false,
165167
mediaAttributes: {},
166-
title: ({testDriveURL}) => translateLocal('onboarding.tasks.testDriveAdminTask.title', {testDriveURL}),
167-
description: ({testDriveURL}) => translateLocal('onboarding.tasks.testDriveAdminTask.description', {testDriveURL}),
168+
title: ({testDriveURL}) => translate(resolvedLocale, 'onboarding.tasks.testDriveAdminTask.title', {testDriveURL}),
169+
description: ({testDriveURL}) => translate(resolvedLocale, 'onboarding.tasks.testDriveAdminTask.description', {testDriveURL}),
168170
};
169171
const testDriveEmployeeTask: OnboardingTask = {
170172
type: 'viewTour',
171173
autoCompleted: false,
172174
mediaAttributes: {},
173-
title: ({testDriveURL}) => translateLocal('onboarding.tasks.testDriveEmployeeTask.title', {testDriveURL}),
174-
description: ({testDriveURL}) => translateLocal('onboarding.tasks.testDriveEmployeeTask.description', {testDriveURL}),
175+
title: ({testDriveURL}) => translate(resolvedLocale, 'onboarding.tasks.testDriveEmployeeTask.title', {testDriveURL}),
176+
description: ({testDriveURL}) => translate(resolvedLocale, 'onboarding.tasks.testDriveEmployeeTask.description', {testDriveURL}),
175177
};
176178
const createTestDriveAdminWorkspaceTask: OnboardingTask = {
177179
type: 'createWorkspace',
178180
autoCompleted: false,
179181
mediaAttributes: {},
180-
title: ({workspaceConfirmationLink}) => translateLocal('onboarding.tasks.createTestDriveAdminWorkspaceTask.title', {workspaceConfirmationLink}),
181-
description: translateLocal('onboarding.tasks.createTestDriveAdminWorkspaceTask.description'),
182+
title: ({workspaceConfirmationLink}) => translate(resolvedLocale, 'onboarding.tasks.createTestDriveAdminWorkspaceTask.title', {workspaceConfirmationLink}),
183+
description: translate(resolvedLocale, 'onboarding.tasks.createTestDriveAdminWorkspaceTask.description'),
182184
};
183185

184186
const createWorkspaceTask: OnboardingTask = {
185187
type: 'createWorkspace',
186188
autoCompleted: true,
187189
mediaAttributes: {},
188-
title: ({workspaceSettingsLink}) => translateLocal('onboarding.tasks.createWorkspaceTask.title', {workspaceSettingsLink}),
189-
description: ({workspaceSettingsLink}) => translateLocal('onboarding.tasks.createWorkspaceTask.description', {workspaceSettingsLink}),
190+
title: ({workspaceSettingsLink}) => translate(resolvedLocale, 'onboarding.tasks.createWorkspaceTask.title', {workspaceSettingsLink}),
191+
description: ({workspaceSettingsLink}) => translate(resolvedLocale, 'onboarding.tasks.createWorkspaceTask.description', {workspaceSettingsLink}),
190192
};
191193

192194
const setupCategoriesTask: OnboardingTask = {
@@ -195,32 +197,32 @@ const getOnboardingMessages = () => {
195197
mediaAttributes: {
196198
[`${CONST.CLOUDFRONT_URL}/videos/walkthrough-categories-v2.mp4`]: `data-expensify-thumbnail-url="${CONST.CLOUDFRONT_URL}/images/walkthrough-categories.png" data-expensify-width="1920" data-expensify-height="1080"`,
197199
},
198-
title: ({workspaceCategoriesLink}) => translateLocal('onboarding.tasks.setupCategoriesTask.title', {workspaceCategoriesLink}),
199-
description: ({workspaceCategoriesLink}) => translateLocal('onboarding.tasks.setupCategoriesTask.description', {workspaceCategoriesLink}),
200+
title: ({workspaceCategoriesLink}) => translate(resolvedLocale, 'onboarding.tasks.setupCategoriesTask.title', {workspaceCategoriesLink}),
201+
description: ({workspaceCategoriesLink}) => translate(resolvedLocale, 'onboarding.tasks.setupCategoriesTask.description', {workspaceCategoriesLink}),
200202
};
201203

202204
const combinedTrackSubmitExpenseTask: OnboardingTask = {
203205
type: 'submitExpense',
204206
autoCompleted: false,
205207
mediaAttributes: {},
206-
title: translateLocal('onboarding.tasks.combinedTrackSubmitExpenseTask.title'),
207-
description: translateLocal('onboarding.tasks.combinedTrackSubmitExpenseTask.description'),
208+
title: translate(resolvedLocale, 'onboarding.tasks.combinedTrackSubmitExpenseTask.title'),
209+
description: translate(resolvedLocale, 'onboarding.tasks.combinedTrackSubmitExpenseTask.description'),
208210
};
209211

210212
const adminSubmitExpenseTask: OnboardingTask = {
211213
type: 'submitExpense',
212214
autoCompleted: false,
213215
mediaAttributes: {},
214-
title: translateLocal('onboarding.tasks.adminSubmitExpenseTask.title'),
215-
description: translateLocal('onboarding.tasks.adminSubmitExpenseTask.description'),
216+
title: translate(resolvedLocale, 'onboarding.tasks.adminSubmitExpenseTask.title'),
217+
description: translate(resolvedLocale, 'onboarding.tasks.adminSubmitExpenseTask.description'),
216218
};
217219

218220
const trackExpenseTask: OnboardingTask = {
219221
type: 'trackExpense',
220222
autoCompleted: false,
221223
mediaAttributes: {},
222-
title: translateLocal('onboarding.tasks.trackExpenseTask.title'),
223-
description: translateLocal('onboarding.tasks.trackExpenseTask.description'),
224+
title: translate(resolvedLocale, 'onboarding.tasks.trackExpenseTask.title'),
225+
description: translate(resolvedLocale, 'onboarding.tasks.trackExpenseTask.description'),
224226
};
225227

226228
const addAccountingIntegrationTask: OnboardingTask = {
@@ -231,14 +233,15 @@ const getOnboardingMessages = () => {
231233
[`${CONST.CLOUDFRONT_URL}/${CONST.connectionsVideoPaths[CONST.ONBOARDING_ACCOUNTING_MAPPING.quickbooksOnline]}`]: `data-expensify-thumbnail-url="${CONST.CLOUDFRONT_URL}/images/walkthrough-connect_to_qbo.png" data-expensify-width="1920" data-expensify-height="1080"`,
232234
[`${CONST.CLOUDFRONT_URL}/${CONST.connectionsVideoPaths[CONST.ONBOARDING_ACCOUNTING_MAPPING.xero]}`]: `data-expensify-thumbnail-url="${CONST.CLOUDFRONT_URL}/images/walkthrough-connect_to_xero.png" data-expensify-width="1920" data-expensify-height="1080"`,
233235
},
234-
title: ({integrationName, workspaceAccountingLink}) => translateLocal('onboarding.tasks.addAccountingIntegrationTask.title', {integrationName, workspaceAccountingLink}),
235-
description: ({integrationName, workspaceAccountingLink}) => translateLocal('onboarding.tasks.addAccountingIntegrationTask.description', {integrationName, workspaceAccountingLink}),
236+
title: ({integrationName, workspaceAccountingLink}) => translate(resolvedLocale, 'onboarding.tasks.addAccountingIntegrationTask.title', {integrationName, workspaceAccountingLink}),
237+
description: ({integrationName, workspaceAccountingLink}) =>
238+
translate(resolvedLocale, 'onboarding.tasks.addAccountingIntegrationTask.description', {integrationName, workspaceAccountingLink}),
236239
};
237240

238241
const connectCorporateCardTask: OnboardingTask = {
239242
type: 'connectCorporateCard',
240-
title: ({corporateCardLink}) => translateLocal('onboarding.tasks.connectCorporateCardTask.title', {corporateCardLink}),
241-
description: ({corporateCardLink}) => translateLocal('onboarding.tasks.connectCorporateCardTask.description', {corporateCardLink}),
243+
title: ({corporateCardLink}) => translate(resolvedLocale, 'onboarding.tasks.connectCorporateCardTask.title', {corporateCardLink}),
244+
description: ({corporateCardLink}) => translate(resolvedLocale, 'onboarding.tasks.connectCorporateCardTask.description', {corporateCardLink}),
242245
autoCompleted: false,
243246
mediaAttributes: {},
244247
};
@@ -249,24 +252,24 @@ const getOnboardingMessages = () => {
249252
mediaAttributes: {
250253
[`${CONST.CLOUDFRONT_URL}/videos/walkthrough-invite_members-v2.mp4`]: `data-expensify-thumbnail-url="${CONST.CLOUDFRONT_URL}/images/walkthrough-invite_members.png" data-expensify-width="1920" data-expensify-height="1080"`,
251254
},
252-
title: ({workspaceMembersLink}) => translateLocal('onboarding.tasks.inviteTeamTask.title', {workspaceMembersLink}),
253-
description: ({workspaceMembersLink}) => translateLocal('onboarding.tasks.inviteTeamTask.description', {workspaceMembersLink}),
255+
title: ({workspaceMembersLink}) => translate(resolvedLocale, 'onboarding.tasks.inviteTeamTask.title', {workspaceMembersLink}),
256+
description: ({workspaceMembersLink}) => translate(resolvedLocale, 'onboarding.tasks.inviteTeamTask.description', {workspaceMembersLink}),
254257
};
255258

256259
const setupCategoriesAndTags: OnboardingTask = {
257260
type: 'setupCategoriesAndTags',
258261
autoCompleted: false,
259262
mediaAttributes: {},
260263
title: ({workspaceCategoriesLink, workspaceMoreFeaturesLink}) =>
261-
translateLocal('onboarding.tasks.setupCategoriesAndTags.title', {workspaceCategoriesLink, workspaceMoreFeaturesLink}),
264+
translate(resolvedLocale, 'onboarding.tasks.setupCategoriesAndTags.title', {workspaceCategoriesLink, workspaceMoreFeaturesLink}),
262265
description: ({workspaceCategoriesLink, workspaceAccountingLink}) =>
263-
translateLocal('onboarding.tasks.setupCategoriesAndTags.description', {workspaceCategoriesLink, workspaceAccountingLink}),
266+
translate(resolvedLocale, 'onboarding.tasks.setupCategoriesAndTags.description', {workspaceCategoriesLink, workspaceAccountingLink}),
264267
};
265268
const setupTagsTask: OnboardingTask = {
266269
type: 'setupTags',
267270
autoCompleted: false,
268-
title: ({workspaceMoreFeaturesLink}) => translateLocal('onboarding.tasks.setupTagsTask.title', {workspaceMoreFeaturesLink}),
269-
description: ({workspaceMoreFeaturesLink}) => translateLocal('onboarding.tasks.setupTagsTask.description', {workspaceMoreFeaturesLink}),
271+
title: ({workspaceMoreFeaturesLink}) => translate(resolvedLocale, 'onboarding.tasks.setupTagsTask.title', {workspaceMoreFeaturesLink}),
272+
description: ({workspaceMoreFeaturesLink}) => translate(resolvedLocale, 'onboarding.tasks.setupTagsTask.description', {workspaceMoreFeaturesLink}),
270273
mediaAttributes: {
271274
[`${CONST.CLOUDFRONT_URL}/videos/walkthrough-tags-v2.mp4`]: `data-expensify-thumbnail-url="${CONST.CLOUDFRONT_URL}/images/walkthrough-tags.png" data-expensify-width="1920" data-expensify-height="1080"`,
272275
},
@@ -276,28 +279,28 @@ const getOnboardingMessages = () => {
276279
type: 'startChat',
277280
autoCompleted: false,
278281
mediaAttributes: {},
279-
title: translateLocal('onboarding.tasks.startChatTask.title'),
280-
description: translateLocal('onboarding.tasks.startChatTask.description'),
282+
title: translate(resolvedLocale, 'onboarding.tasks.startChatTask.title'),
283+
description: translate(resolvedLocale, 'onboarding.tasks.startChatTask.description'),
281284
};
282285

283286
const splitExpenseTask: OnboardingTask = {
284287
type: 'splitExpense',
285288
autoCompleted: false,
286289
mediaAttributes: {},
287-
title: translateLocal('onboarding.tasks.splitExpenseTask.title'),
288-
description: translateLocal('onboarding.tasks.splitExpenseTask.description'),
290+
title: translate(resolvedLocale, 'onboarding.tasks.splitExpenseTask.title'),
291+
description: translate(resolvedLocale, 'onboarding.tasks.splitExpenseTask.description'),
289292
};
290293

291294
const reviewWorkspaceSettingsTask: OnboardingTask = {
292295
type: 'reviewWorkspaceSettings',
293296
autoCompleted: false,
294297
mediaAttributes: {},
295-
title: ({workspaceSettingsLink}) => translateLocal('onboarding.tasks.reviewWorkspaceSettingsTask.title', {workspaceSettingsLink}),
296-
description: ({workspaceSettingsLink}) => translateLocal('onboarding.tasks.reviewWorkspaceSettingsTask.description', {workspaceSettingsLink}),
298+
title: ({workspaceSettingsLink}) => translate(resolvedLocale, 'onboarding.tasks.reviewWorkspaceSettingsTask.title', {workspaceSettingsLink}),
299+
description: ({workspaceSettingsLink}) => translate(resolvedLocale, 'onboarding.tasks.reviewWorkspaceSettingsTask.description', {workspaceSettingsLink}),
297300
};
298301

299302
const onboardingEmployerOrSubmitMessage: OnboardingMessage = {
300-
message: translateLocal('onboarding.messages.onboardingEmployerOrSubmitMessage'),
303+
message: translate(resolvedLocale, 'onboarding.messages.onboardingEmployerOrSubmitMessage'),
301304
tasks: [testDriveEmployeeTask, adminSubmitExpenseTask],
302305
};
303306

@@ -307,7 +310,7 @@ const getOnboardingMessages = () => {
307310
};
308311

309312
const onboardingPersonalSpendMessage: OnboardingMessage = {
310-
message: translateLocal('onboarding.messages.onboardingPersonalSpendMessage'),
313+
message: translate(resolvedLocale, 'onboarding.messages.onboardingPersonalSpendMessage'),
311314
tasks: [testDriveEmployeeTask, trackExpenseTask],
312315
};
313316
const combinedTrackSubmitOnboardingPersonalSpendMessage: OnboardingMessage = {
@@ -316,12 +319,12 @@ const getOnboardingMessages = () => {
316319
};
317320

318321
const onboardingMangeTeamMessage: OnboardingMessage = {
319-
message: ({onboardingCompanySize}) => translateLocal('onboarding.messages.onboardingMangeTeamMessage', {onboardingCompanySize}),
322+
message: ({onboardingCompanySize}) => translate(resolvedLocale, 'onboarding.messages.onboardingMangeTeamMessage', {onboardingCompanySize}),
320323
tasks: [createWorkspaceTask, testDriveAdminTask, addAccountingIntegrationTask, connectCorporateCardTask, inviteTeamTask, setupCategoriesAndTags, setupCategoriesTask, setupTagsTask],
321324
};
322325

323326
const onboardingTrackWorkspaceMessage: OnboardingMessage = {
324-
message: translateLocal('onboarding.messages.onboardingTrackWorkspaceMessage'),
327+
message: translate(resolvedLocale, 'onboarding.messages.onboardingTrackWorkspaceMessage'),
325328
video: {
326329
url: `${CONST.CLOUDFRONT_URL}/videos/guided-setup-manage-team-v2.mp4`,
327330
thumbnailUrl: `${CONST.CLOUDFRONT_URL}/images/guided-setup-manage-team.jpg`,
@@ -333,21 +336,21 @@ const getOnboardingMessages = () => {
333336
};
334337

335338
const onboardingChatSplitMessage: OnboardingMessage = {
336-
message: translateLocal('onboarding.messages.onboardingChatSplitMessage'),
339+
message: translate(resolvedLocale, 'onboarding.messages.onboardingChatSplitMessage'),
337340
tasks: [testDriveEmployeeTask, startChatTask, splitExpenseTask],
338341
};
339342

340343
const onboardingAdminMessage: OnboardingMessage = {
341-
message: translateLocal('onboarding.messages.onboardingAdminMessage'),
344+
message: translate(resolvedLocale, 'onboarding.messages.onboardingAdminMessage'),
342345
tasks: [reviewWorkspaceSettingsTask, adminSubmitExpenseTask],
343346
};
344347
const onboardingLookingAroundMessage: OnboardingMessage = {
345-
message: translateLocal('onboarding.messages.onboardingLookingAroundMessage'),
348+
message: translate(resolvedLocale, 'onboarding.messages.onboardingLookingAroundMessage'),
346349
tasks: [],
347350
};
348351

349352
const onboardingTestDriveReceiverMessage: OnboardingMessage = {
350-
message: translateLocal('onboarding.messages.onboardingTestDriveReceiverMessage'),
353+
message: translate(resolvedLocale, 'onboarding.messages.onboardingTestDriveReceiverMessage'),
351354
tasks: [testDriveAdminTask, createTestDriveAdminWorkspaceTask],
352355
};
353356

0 commit comments

Comments
 (0)