Skip to content

Commit d38fb99

Browse files
authored
Merge pull request #41593 from DylanDylann/fix/41589
2 parents a9cc15b + 7bb2cff commit d38fb99

File tree

7 files changed

+52
-64
lines changed

7 files changed

+52
-64
lines changed

src/ONYXKEYS.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,9 @@ const ONYXKEYS = {
282282
/** Onboarding Purpose selected by the user during Onboarding flow */
283283
ONBOARDING_PURPOSE_SELECTED: 'onboardingPurposeSelected',
284284

285+
/** Onboarding Purpose selected by the user during Onboarding flow */
286+
ONBOARDING_ADMINS_CHAT_REPORT_ID: 'onboardingAdminsChatReportID',
287+
285288
// Max width supported for HTML <canvas> element
286289
MAX_CANVAS_WIDTH: 'maxCanvasWidth',
287290

@@ -655,6 +658,7 @@ type OnyxValuesMapping = {
655658
[ONYXKEYS.MAX_CANVAS_HEIGHT]: number;
656659
[ONYXKEYS.MAX_CANVAS_WIDTH]: number;
657660
[ONYXKEYS.ONBOARDING_PURPOSE_SELECTED]: string;
661+
[ONYXKEYS.ONBOARDING_ADMINS_CHAT_REPORT_ID]: string;
658662
[ONYXKEYS.IS_SEARCHING_FOR_REPORTS]: boolean;
659663
[ONYXKEYS.LAST_VISITED_PATH]: string | undefined;
660664
[ONYXKEYS.RECENTLY_USED_REPORT_FIELDS]: OnyxTypes.RecentlyUsedReportFields;

src/libs/actions/Welcome.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ function setOnboardingPurposeSelected(value: OnboardingPurposeType) {
6969
Onyx.set(ONYXKEYS.ONBOARDING_PURPOSE_SELECTED, value ?? null);
7070
}
7171

72+
function setOnboardingAdminsChatReportID(adminsChatReportID?: string) {
73+
Onyx.set(ONYXKEYS.ONBOARDING_ADMINS_CHAT_REPORT_ID, adminsChatReportID ?? null);
74+
}
75+
7276
Onyx.connect({
7377
key: ONYXKEYS.NVP_ONBOARDING,
7478
initWithStoredValues: false,
@@ -130,4 +134,4 @@ function resetAllChecks() {
130134
isLoadingReportData = true;
131135
}
132136

133-
export {onServerDataReady, isOnboardingFlowCompleted, setOnboardingPurposeSelected, resetAllChecks};
137+
export {onServerDataReady, isOnboardingFlowCompleted, setOnboardingPurposeSelected, resetAllChecks, setOnboardingAdminsChatReportID};

src/pages/OnboardingPersonalDetails/BaseOnboardingPersonalDetails.tsx

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,14 @@ import * as ValidationUtils from '@libs/ValidationUtils';
2222
import variables from '@styles/variables';
2323
import * as PersonalDetails from '@userActions/PersonalDetails';
2424
import * as Report from '@userActions/Report';
25+
import * as Welcome from '@userActions/Welcome';
2526
import CONST from '@src/CONST';
2627
import ONYXKEYS from '@src/ONYXKEYS';
2728
import ROUTES from '@src/ROUTES';
2829
import INPUT_IDS from '@src/types/form/DisplayNameForm';
2930
import type {BaseOnboardingPersonalDetailsOnyxProps, BaseOnboardingPersonalDetailsProps} from './types';
3031

31-
const OPEN_WORK_PAGE_PURPOSES = [CONST.ONBOARDING_CHOICES.MANAGE_TEAM];
32-
33-
function BaseOnboardingPersonalDetails({currentUserPersonalDetails, shouldUseNativeStyles, onboardingPurposeSelected}: BaseOnboardingPersonalDetailsProps) {
32+
function BaseOnboardingPersonalDetails({currentUserPersonalDetails, shouldUseNativeStyles, onboardingPurposeSelected, onboardingAdminsChatReportID}: BaseOnboardingPersonalDetailsProps) {
3433
const styles = useThemeStyles();
3534
const {translate} = useLocalize();
3635
const {isSmallScreenWidth} = useWindowDimensions();
@@ -51,17 +50,18 @@ function BaseOnboardingPersonalDetails({currentUserPersonalDetails, shouldUseNat
5150
return;
5251
}
5352

54-
if (OPEN_WORK_PAGE_PURPOSES.includes(onboardingPurposeSelected)) {
55-
Navigation.navigate(ROUTES.ONBOARDING_WORK);
53+
Report.completeOnboarding(
54+
onboardingPurposeSelected,
55+
CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected],
56+
{
57+
login: currentUserPersonalDetails.login ?? '',
58+
firstName,
59+
lastName,
60+
},
61+
onboardingAdminsChatReportID ?? undefined,
62+
);
5663

57-
return;
58-
}
59-
60-
Report.completeOnboarding(onboardingPurposeSelected, CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected], {
61-
login: currentUserPersonalDetails.login ?? '',
62-
firstName,
63-
lastName,
64-
});
64+
Welcome.setOnboardingAdminsChatReportID();
6565

6666
Navigation.dismissModal();
6767

@@ -79,7 +79,7 @@ function BaseOnboardingPersonalDetails({currentUserPersonalDetails, shouldUseNat
7979
Navigation.navigate(ROUTES.WELCOME_VIDEO_ROOT);
8080
}, variables.welcomeVideoDelay);
8181
},
82-
[currentUserPersonalDetails.login, isSmallScreenWidth, onboardingPurposeSelected],
82+
[currentUserPersonalDetails.login, isSmallScreenWidth, onboardingPurposeSelected, onboardingAdminsChatReportID],
8383
);
8484

8585
const validate = (values: FormOnyxValues<'onboardingPersonalDetailsForm'>) => {
@@ -121,7 +121,7 @@ function BaseOnboardingPersonalDetails({currentUserPersonalDetails, shouldUseNat
121121
<View style={[styles.h100, styles.defaultModalContainer, shouldUseNativeStyles && styles.pt8]}>
122122
<HeaderWithBackButton
123123
shouldShowBackButton
124-
progressBarPercentage={OPEN_WORK_PAGE_PURPOSES.includes(onboardingPurposeSelected ?? '') ? 50 : 75}
124+
progressBarPercentage={75}
125125
onBackButtonPress={Navigation.goBack}
126126
/>
127127
<KeyboardAvoidingView
@@ -186,5 +186,8 @@ export default withCurrentUserPersonalDetails(
186186
onboardingPurposeSelected: {
187187
key: ONYXKEYS.ONBOARDING_PURPOSE_SELECTED,
188188
},
189+
onboardingAdminsChatReportID: {
190+
key: ONYXKEYS.ONBOARDING_ADMINS_CHAT_REPORT_ID,
191+
},
189192
})(BaseOnboardingPersonalDetails),
190193
);

src/pages/OnboardingPersonalDetails/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ type OnboardingPersonalDetailsProps = Record<string, unknown>;
77
type BaseOnboardingPersonalDetailsOnyxProps = {
88
/** Saved onboarding purpose selected by the user */
99
onboardingPurposeSelected: OnyxEntry<OnboardingPurposeType>;
10+
11+
/** Saved onboarding admin chat report ID */
12+
onboardingAdminsChatReportID: OnyxEntry<string>;
1013
};
1114

1215
type BaseOnboardingPersonalDetailsProps = WithCurrentUserPersonalDetailsProps &

src/pages/OnboardingPurpose/BaseOnboardingPurpose.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ function BaseOnboardingPurpose({shouldUseNativeStyles, shouldEnableMaxHeight, on
7575
return;
7676
}
7777

78+
if (selectedPurpose === CONST.ONBOARDING_CHOICES.MANAGE_TEAM) {
79+
Navigation.navigate(ROUTES.ONBOARDING_WORK);
80+
return;
81+
}
82+
7883
Navigation.navigate(ROUTES.ONBOARDING_PERSONAL_DETAILS);
7984
}, [selectedPurpose]);
8085

src/pages/OnboardingWork/BaseOnboardingWork.tsx

Lines changed: 13 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import KeyboardAvoidingView from '@components/KeyboardAvoidingView';
99
import OfflineIndicator from '@components/OfflineIndicator';
1010
import Text from '@components/Text';
1111
import TextInput from '@components/TextInput';
12-
import withCurrentUserPersonalDetails from '@components/withCurrentUserPersonalDetails';
1312
import useDisableModalDismissOnEscape from '@hooks/useDisableModalDismissOnEscape';
1413
import useLocalize from '@hooks/useLocalize';
1514
import useOnboardingLayout from '@hooks/useOnboardingLayout';
@@ -18,16 +17,17 @@ import useWindowDimensions from '@hooks/useWindowDimensions';
1817
import * as ErrorUtils from '@libs/ErrorUtils';
1918
import Navigation from '@libs/Navigation/Navigation';
2019
import * as ValidationUtils from '@libs/ValidationUtils';
21-
import variables from '@styles/variables';
2220
import * as Policy from '@userActions/Policy';
23-
import * as Report from '@userActions/Report';
21+
import * as Welcome from '@userActions/Welcome';
2422
import CONST from '@src/CONST';
2523
import ONYXKEYS from '@src/ONYXKEYS';
2624
import ROUTES from '@src/ROUTES';
2725
import INPUT_IDS from '@src/types/form/WorkForm';
2826
import type {BaseOnboardingWorkOnyxProps, BaseOnboardingWorkProps} from './types';
2927

30-
function BaseOnboardingWork({currentUserPersonalDetails, shouldUseNativeStyles, onboardingPurposeSelected}: BaseOnboardingWorkProps) {
28+
const OPEN_WORK_PAGE_PURPOSES = [CONST.ONBOARDING_CHOICES.MANAGE_TEAM];
29+
30+
function BaseOnboardingWork({shouldUseNativeStyles, onboardingPurposeSelected}: BaseOnboardingWorkProps) {
3131
const styles = useThemeStyles();
3232
const {translate} = useLocalize();
3333
const {isSmallScreenWidth} = useWindowDimensions();
@@ -40,39 +40,12 @@ function BaseOnboardingWork({currentUserPersonalDetails, shouldUseNativeStyles,
4040
if (!onboardingPurposeSelected) {
4141
return;
4242
}
43-
4443
const work = values.work.trim();
45-
4644
const {adminsChatReportID} = Policy.createWorkspace(undefined, true, work);
47-
48-
Report.completeOnboarding(
49-
onboardingPurposeSelected,
50-
CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected],
51-
{
52-
login: currentUserPersonalDetails.login ?? '',
53-
firstName: currentUserPersonalDetails.firstName ?? '',
54-
lastName: currentUserPersonalDetails.lastName ?? '',
55-
},
56-
adminsChatReportID,
57-
);
58-
59-
Navigation.dismissModal();
60-
61-
// Only navigate to concierge chat when central pane is visible
62-
// Otherwise stay on the chats screen.
63-
if (isSmallScreenWidth) {
64-
Navigation.navigate(ROUTES.HOME);
65-
} else {
66-
Report.navigateToConciergeChat();
67-
}
68-
69-
// Small delay purely due to design considerations,
70-
// no special technical reasons behind that.
71-
setTimeout(() => {
72-
Navigation.navigate(ROUTES.WELCOME_VIDEO_ROOT);
73-
}, variables.welcomeVideoDelay);
45+
Welcome.setOnboardingAdminsChatReportID(adminsChatReportID);
46+
Navigation.navigate(ROUTES.ONBOARDING_PERSONAL_DETAILS);
7447
},
75-
[currentUserPersonalDetails.firstName, currentUserPersonalDetails.lastName, currentUserPersonalDetails.login, isSmallScreenWidth, onboardingPurposeSelected],
48+
[onboardingPurposeSelected],
7649
);
7750

7851
const validate = (values: FormOnyxValues<'onboardingWorkForm'>) => {
@@ -96,7 +69,7 @@ function BaseOnboardingWork({currentUserPersonalDetails, shouldUseNativeStyles,
9669
<View style={[styles.h100, styles.defaultModalContainer, shouldUseNativeStyles && styles.pt8]}>
9770
<HeaderWithBackButton
9871
shouldShowBackButton
99-
progressBarPercentage={75}
72+
progressBarPercentage={OPEN_WORK_PAGE_PURPOSES.includes(onboardingPurposeSelected ?? '') ? 50 : 75}
10073
onBackButtonPress={Navigation.goBack}
10174
/>
10275
<KeyboardAvoidingView
@@ -141,10 +114,8 @@ function BaseOnboardingWork({currentUserPersonalDetails, shouldUseNativeStyles,
141114

142115
BaseOnboardingWork.displayName = 'BaseOnboardingWork';
143116

144-
export default withCurrentUserPersonalDetails(
145-
withOnyx<BaseOnboardingWorkProps, BaseOnboardingWorkOnyxProps>({
146-
onboardingPurposeSelected: {
147-
key: ONYXKEYS.ONBOARDING_PURPOSE_SELECTED,
148-
},
149-
})(BaseOnboardingWork),
150-
);
117+
export default withOnyx<BaseOnboardingWorkProps, BaseOnboardingWorkOnyxProps>({
118+
onboardingPurposeSelected: {
119+
key: ONYXKEYS.ONBOARDING_PURPOSE_SELECTED,
120+
},
121+
})(BaseOnboardingWork);

src/pages/OnboardingWork/types.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type {OnyxEntry} from 'react-native-onyx';
2-
import type {WithCurrentUserPersonalDetailsProps} from '@components/withCurrentUserPersonalDetails';
32
import type {OnboardingPurposeType} from '@src/CONST';
43

54
type OnboardingWorkProps = Record<string, unknown>;
@@ -9,10 +8,9 @@ type BaseOnboardingWorkOnyxProps = {
98
onboardingPurposeSelected: OnyxEntry<OnboardingPurposeType>;
109
};
1110

12-
type BaseOnboardingWorkProps = WithCurrentUserPersonalDetailsProps &
13-
BaseOnboardingWorkOnyxProps & {
14-
/* Whether to use native styles tailored for native devices */
15-
shouldUseNativeStyles: boolean;
16-
};
11+
type BaseOnboardingWorkProps = BaseOnboardingWorkOnyxProps & {
12+
/* Whether to use native styles tailored for native devices */
13+
shouldUseNativeStyles: boolean;
14+
};
1715

1816
export type {OnboardingWorkProps, BaseOnboardingWorkOnyxProps, BaseOnboardingWorkProps};

0 commit comments

Comments
 (0)