Skip to content

Commit e7486a1

Browse files
committed
refactor(66152): define enum for onboarding task type
1 parent f9316f3 commit e7486a1

3 files changed

Lines changed: 47 additions & 25 deletions

File tree

src/CONST/index.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6924,6 +6924,24 @@ const CONST = {
69246924
},
69256925

69266926
SIGNIN_ROUTE: '/signin',
6927+
6928+
ONBOARDING_TASK_TYPE: {
6929+
CREATE_REPORT: 'createReport',
6930+
CREATE_WORKSPACE: 'createWorkspace',
6931+
VIEW_TOUR: 'viewTour',
6932+
SETUP_CATEGORIES: 'setupCategories',
6933+
SUBMIT_EXPENSE: 'submitExpense',
6934+
TRACK_EXPENSE: 'trackExpense',
6935+
ADD_ACCOUNTING_INTEGRATION: 'addAccountingIntegration',
6936+
CONNECT_CORPORATE_CARD: 'connectCorporateCard',
6937+
INVITE_TEAM: 'inviteTeam',
6938+
SETUP_CATEGORIES_AND_TAGS: 'setupCategoriesAndTags',
6939+
SETUP_TAGS: 'setupTags',
6940+
START_CHAT: 'startChat',
6941+
SPLIT_EXPENSE: 'splitExpense',
6942+
REVIEW_WORKSPACE_SETTINGS: 'reviewWorkspaceSettings',
6943+
INVITE_ACCOUNTANT: 'inviteAccountant',
6944+
},
69276945
} as const;
69286946

69296947
type Country = keyof typeof CONST.ALL_COUNTRIES;

src/libs/ReportUtils.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10165,16 +10165,16 @@ function prepareOnboardingOnyxData(
1016510165
let createWorkspaceTaskReportID;
1016610166
const tasksData = onboardingMessage.tasks
1016710167
.filter((task) => {
10168-
if (['setupCategories', 'setupTags'].includes(task.type) && userReportedIntegration) {
10168+
if (([CONST.ONBOARDING_TASK_TYPE.SETUP_CATEGORIES, CONST.ONBOARDING_TASK_TYPE.SETUP_TAGS] as string[]).includes(task.type) && userReportedIntegration) {
1016910169
return false;
1017010170
}
1017110171

10172-
if (['addAccountingIntegration', 'setupCategoriesAndTags'].includes(task.type) && !userReportedIntegration) {
10172+
if (([CONST.ONBOARDING_TASK_TYPE.ADD_ACCOUNTING_INTEGRATION, CONST.ONBOARDING_TASK_TYPE.SETUP_CATEGORIES_AND_TAGS] as string[]).includes(task.type) && !userReportedIntegration) {
1017310173
return false;
1017410174
}
1017510175
type SkipViewTourOnboardingChoices = 'newDotSubmit' | 'newDotSplitChat' | 'newDotPersonalSpend' | 'newDotEmployer';
1017610176
if (
10177-
task.type === 'viewTour' &&
10177+
task.type === CONST.ONBOARDING_TASK_TYPE.VIEW_TOUR &&
1017810178
[
1017910179
CONST.ONBOARDING_CHOICES.EMPLOYER,
1018010180
CONST.ONBOARDING_CHOICES.PERSONAL_SPEND,
@@ -10189,7 +10189,11 @@ function prepareOnboardingOnyxData(
1018910189

1019010190
// Exclude createWorkspace and viewTour tasks from #admin room, for test drive receivers,
1019110191
// since these users already have them in concierge
10192-
if (introSelected?.choice === CONST.ONBOARDING_CHOICES.TEST_DRIVE_RECEIVER && ['createWorkspace', 'viewTour'].includes(task.type) && shouldPostTasksInAdminsRoom) {
10192+
if (
10193+
introSelected?.choice === CONST.ONBOARDING_CHOICES.TEST_DRIVE_RECEIVER &&
10194+
([CONST.ONBOARDING_TASK_TYPE.CREATE_WORKSPACE, CONST.ONBOARDING_TASK_TYPE.VIEW_TOUR] as string[]).includes(task.type) &&
10195+
shouldPostTasksInAdminsRoom
10196+
) {
1019310197
return false;
1019410198
}
1019510199

@@ -10216,15 +10220,15 @@ function prepareOnboardingOnyxData(
1021610220

1021710221
let isTaskAutoCompleted: boolean = task.autoCompleted;
1021810222

10219-
if (task.type === 'viewTour' && onboarding?.selfTourViewed) {
10223+
if (task.type === CONST.ONBOARDING_TASK_TYPE.VIEW_TOUR && onboarding?.selfTourViewed) {
1022010224
// If the user has already viewed the self tour, we mark the task as auto completed
1022110225
isTaskAutoCompleted = true;
1022210226
}
1022310227

1022410228
const completedTaskReportAction = isTaskAutoCompleted
1022510229
? buildOptimisticTaskReportAction(currentTask.reportID, CONST.REPORT.ACTIONS.TYPE.TASK_COMPLETED, 'marked as complete', actorAccountID, 2)
1022610230
: null;
10227-
if (task.type === 'createWorkspace') {
10231+
if (task.type === CONST.ONBOARDING_TASK_TYPE.CREATE_WORKSPACE) {
1022810232
createWorkspaceTaskReportID = currentTask.reportID;
1022910233
}
1023010234

src/libs/actions/Welcome/OnboardingFlow.ts

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ type OnboardingTaskLinks = Partial<{
5353
}>;
5454

5555
type OnboardingTask = {
56-
type: string;
56+
type: ValueOf<typeof CONST.ONBOARDING_TASK_TYPE>;
5757
autoCompleted: boolean;
5858
mediaAttributes: Record<string, string>;
5959
title: string | ((params: OnboardingTaskLinks) => string);
@@ -167,44 +167,44 @@ const getOnboardingMessages = (locale?: Locale) => {
167167
},
168168
};
169169
const createReportTask: OnboardingTask = {
170-
type: 'createReport',
170+
type: CONST.ONBOARDING_TASK_TYPE.CREATE_REPORT,
171171
autoCompleted: false,
172172
mediaAttributes: {},
173173
title: translate(resolvedLocale, 'onboarding.tasks.createReportTask.title'),
174174
description: translate(resolvedLocale, 'onboarding.tasks.createReportTask.description'),
175175
};
176176
const testDriveAdminTask: OnboardingTask = {
177-
type: 'viewTour',
177+
type: CONST.ONBOARDING_TASK_TYPE.VIEW_TOUR,
178178
autoCompleted: false,
179179
mediaAttributes: {},
180180
title: ({testDriveURL}) => translate(resolvedLocale, 'onboarding.tasks.testDriveAdminTask.title', {testDriveURL}),
181181
description: ({testDriveURL}) => translate(resolvedLocale, 'onboarding.tasks.testDriveAdminTask.description', {testDriveURL}),
182182
};
183183
const testDriveEmployeeTask: OnboardingTask = {
184-
type: 'viewTour',
184+
type: CONST.ONBOARDING_TASK_TYPE.VIEW_TOUR,
185185
autoCompleted: false,
186186
mediaAttributes: {},
187187
title: ({testDriveURL}) => translate(resolvedLocale, 'onboarding.tasks.testDriveEmployeeTask.title', {testDriveURL}),
188188
description: ({testDriveURL}) => translate(resolvedLocale, 'onboarding.tasks.testDriveEmployeeTask.description', {testDriveURL}),
189189
};
190190
const createTestDriveAdminWorkspaceTask: OnboardingTask = {
191-
type: 'createWorkspace',
191+
type: CONST.ONBOARDING_TASK_TYPE.CREATE_WORKSPACE,
192192
autoCompleted: false,
193193
mediaAttributes: {},
194194
title: ({workspaceConfirmationLink}) => translate(resolvedLocale, 'onboarding.tasks.createTestDriveAdminWorkspaceTask.title', {workspaceConfirmationLink}),
195195
description: translate(resolvedLocale, 'onboarding.tasks.createTestDriveAdminWorkspaceTask.description'),
196196
};
197197

198198
const createWorkspaceTask: OnboardingTask = {
199-
type: 'createWorkspace',
199+
type: CONST.ONBOARDING_TASK_TYPE.CREATE_WORKSPACE,
200200
autoCompleted: true,
201201
mediaAttributes: {},
202202
title: ({workspaceSettingsLink}) => translate(resolvedLocale, 'onboarding.tasks.createWorkspaceTask.title', {workspaceSettingsLink}),
203203
description: ({workspaceSettingsLink}) => translate(resolvedLocale, 'onboarding.tasks.createWorkspaceTask.description', {workspaceSettingsLink}),
204204
};
205205

206206
const setupCategoriesTask: OnboardingTask = {
207-
type: 'setupCategories',
207+
type: CONST.ONBOARDING_TASK_TYPE.SETUP_CATEGORIES,
208208
autoCompleted: false,
209209
mediaAttributes: {
210210
[`${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"`,
@@ -214,31 +214,31 @@ const getOnboardingMessages = (locale?: Locale) => {
214214
};
215215

216216
const combinedTrackSubmitExpenseTask: OnboardingTask = {
217-
type: 'submitExpense',
217+
type: CONST.ONBOARDING_TASK_TYPE.SUBMIT_EXPENSE,
218218
autoCompleted: false,
219219
mediaAttributes: {},
220220
title: translate(resolvedLocale, 'onboarding.tasks.combinedTrackSubmitExpenseTask.title'),
221221
description: translate(resolvedLocale, 'onboarding.tasks.combinedTrackSubmitExpenseTask.description'),
222222
};
223223

224224
const adminSubmitExpenseTask: OnboardingTask = {
225-
type: 'submitExpense',
225+
type: CONST.ONBOARDING_TASK_TYPE.SUBMIT_EXPENSE,
226226
autoCompleted: false,
227227
mediaAttributes: {},
228228
title: translate(resolvedLocale, 'onboarding.tasks.adminSubmitExpenseTask.title'),
229229
description: translate(resolvedLocale, 'onboarding.tasks.adminSubmitExpenseTask.description'),
230230
};
231231

232232
const trackExpenseTask: OnboardingTask = {
233-
type: 'trackExpense',
233+
type: CONST.ONBOARDING_TASK_TYPE.TRACK_EXPENSE,
234234
autoCompleted: false,
235235
mediaAttributes: {},
236236
title: translate(resolvedLocale, 'onboarding.tasks.trackExpenseTask.title'),
237237
description: translate(resolvedLocale, 'onboarding.tasks.trackExpenseTask.description'),
238238
};
239239

240240
const addAccountingIntegrationTask: OnboardingTask = {
241-
type: 'addAccountingIntegration',
241+
type: CONST.ONBOARDING_TASK_TYPE.ADD_ACCOUNTING_INTEGRATION,
242242
autoCompleted: false,
243243
mediaAttributes: {
244244
[`${CONST.CLOUDFRONT_URL}/${CONST.connectionsVideoPaths[CONST.ONBOARDING_ACCOUNTING_MAPPING.netsuite]}`]: `data-expensify-thumbnail-url="${CONST.CLOUDFRONT_URL}/images/walkthrough-connect_to_netsuite.png" data-expensify-width="1920" data-expensify-height="1080"`,
@@ -251,15 +251,15 @@ const getOnboardingMessages = (locale?: Locale) => {
251251
};
252252

253253
const connectCorporateCardTask: OnboardingTask = {
254-
type: 'connectCorporateCard',
254+
type: CONST.ONBOARDING_TASK_TYPE.CONNECT_CORPORATE_CARD,
255255
title: ({corporateCardLink}) => translate(resolvedLocale, 'onboarding.tasks.connectCorporateCardTask.title', {corporateCardLink}),
256256
description: ({corporateCardLink}) => translate(resolvedLocale, 'onboarding.tasks.connectCorporateCardTask.description', {corporateCardLink}),
257257
autoCompleted: false,
258258
mediaAttributes: {},
259259
};
260260

261261
const inviteTeamTask: OnboardingTask = {
262-
type: 'inviteTeam',
262+
type: CONST.ONBOARDING_TASK_TYPE.INVITE_TEAM,
263263
autoCompleted: false,
264264
mediaAttributes: {
265265
[`${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"`,
@@ -269,7 +269,7 @@ const getOnboardingMessages = (locale?: Locale) => {
269269
};
270270

271271
const setupCategoriesAndTags: OnboardingTask = {
272-
type: 'setupCategoriesAndTags',
272+
type: CONST.ONBOARDING_TASK_TYPE.SETUP_CATEGORIES_AND_TAGS,
273273
autoCompleted: false,
274274
mediaAttributes: {},
275275
title: ({workspaceCategoriesLink, workspaceMoreFeaturesLink}) =>
@@ -278,7 +278,7 @@ const getOnboardingMessages = (locale?: Locale) => {
278278
translate(resolvedLocale, 'onboarding.tasks.setupCategoriesAndTags.description', {workspaceCategoriesLink, workspaceAccountingLink}),
279279
};
280280
const setupTagsTask: OnboardingTask = {
281-
type: 'setupTags',
281+
type: CONST.ONBOARDING_TASK_TYPE.SETUP_TAGS,
282282
autoCompleted: false,
283283
title: ({workspaceMoreFeaturesLink}) => translate(resolvedLocale, 'onboarding.tasks.setupTagsTask.title', {workspaceMoreFeaturesLink}),
284284
description: ({workspaceMoreFeaturesLink}) => translate(resolvedLocale, 'onboarding.tasks.setupTagsTask.description', {workspaceMoreFeaturesLink}),
@@ -288,31 +288,31 @@ const getOnboardingMessages = (locale?: Locale) => {
288288
};
289289

290290
const startChatTask: OnboardingTask = {
291-
type: 'startChat',
291+
type: CONST.ONBOARDING_TASK_TYPE.START_CHAT,
292292
autoCompleted: false,
293293
mediaAttributes: {},
294294
title: translate(resolvedLocale, 'onboarding.tasks.startChatTask.title'),
295295
description: translate(resolvedLocale, 'onboarding.tasks.startChatTask.description'),
296296
};
297297

298298
const splitExpenseTask: OnboardingTask = {
299-
type: 'splitExpense',
299+
type: CONST.ONBOARDING_TASK_TYPE.SPLIT_EXPENSE,
300300
autoCompleted: false,
301301
mediaAttributes: {},
302302
title: translate(resolvedLocale, 'onboarding.tasks.splitExpenseTask.title'),
303303
description: translate(resolvedLocale, 'onboarding.tasks.splitExpenseTask.description'),
304304
};
305305

306306
const reviewWorkspaceSettingsTask: OnboardingTask = {
307-
type: 'reviewWorkspaceSettings',
307+
type: CONST.ONBOARDING_TASK_TYPE.REVIEW_WORKSPACE_SETTINGS,
308308
autoCompleted: false,
309309
mediaAttributes: {},
310310
title: ({workspaceSettingsLink}) => translate(resolvedLocale, 'onboarding.tasks.reviewWorkspaceSettingsTask.title', {workspaceSettingsLink}),
311311
description: ({workspaceSettingsLink}) => translate(resolvedLocale, 'onboarding.tasks.reviewWorkspaceSettingsTask.description', {workspaceSettingsLink}),
312312
};
313313

314314
const inviteAccountantTask: OnboardingTask = {
315-
type: 'inviteAccountant',
315+
type: CONST.ONBOARDING_TASK_TYPE.INVITE_ACCOUNTANT,
316316
autoCompleted: false,
317317
mediaAttributes: {},
318318
title: ({workspaceMembersLink}) => translate(resolvedLocale, 'onboarding.tasks.inviteAccountantTask.title', {workspaceMembersLink}),

0 commit comments

Comments
 (0)