Skip to content

Commit cc37884

Browse files
committed
update correct last accessed report in the onboarding flow
1 parent 18456a9 commit cc37884

6 files changed

Lines changed: 25 additions & 22 deletions

File tree

src/pages/OnboardingInterestedFeatures/BaseOnboardingInterestedFeatures.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import {completeOnboarding} from '@libs/actions/Report';
2828
import {setOnboardingAdminsChatReportID, setOnboardingPolicyID} from '@libs/actions/Welcome';
2929
import {WRITE_COMMANDS} from '@libs/API/types';
3030
import {navigateAfterOnboardingWithMicrotaskQueue} from '@libs/navigateAfterOnboarding';
31+
import shouldOpenOnAdminRoom from '@libs/Navigation/helpers/shouldOpenOnAdminRoom';
3132
import Navigation from '@libs/Navigation/Navigation';
3233
import {waitForIdle} from '@libs/Network/SequentialQueue';
3334
import {shouldOnboardingRedirectToOldDot} from '@libs/OnboardingUtils';
@@ -60,7 +61,8 @@ function BaseOnboardingInterestedFeatures({shouldUseNativeStyles}: BaseOnboardin
6061
const {isBetaEnabled} = usePermissions();
6162
const [session] = useOnyx(ONYXKEYS.SESSION, {canBeMissing: false});
6263

63-
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS));
64+
const shouldPreventOpenAdminRoom = (session?.email ?? '').includes('+');
65+
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS), shouldOpenOnAdminRoom() && !shouldPreventOpenAdminRoom);
6466

6567
const paidGroupPolicy = Object.values(allPolicies ?? {}).find((policy) => isPaidGroupPolicy(policy) && isPolicyAdmin(policy, session?.email));
6668
const [onboarding] = useOnyx(ONYXKEYS.NVP_ONBOARDING, {canBeMissing: true});
@@ -237,24 +239,24 @@ function BaseOnboardingInterestedFeatures({shouldUseNativeStyles}: BaseOnboardin
237239
adminsChatReportID,
238240
// Onboarding tasks would show in Concierge instead of admins room for testing accounts, we should open where onboarding tasks are located
239241
// See https://github.com/Expensify/App/issues/57167 for more details
240-
(session?.email ?? '').includes('+'),
242+
shouldPreventOpenAdminRoom,
241243
);
242244
}, [
243-
isBetaEnabled,
244-
isSmallScreenWidth,
245-
lastAccessReport,
246-
onboardingAdminsChatReportID,
245+
onboardingPurposeSelected,
247246
onboardingCompanySize,
248-
onboardingMessages,
249247
onboardingPolicyID,
250-
onboardingPurposeSelected,
251248
paidGroupPolicy,
252-
session?.email,
249+
selectedFeatures,
253250
userReportedIntegration,
254251
features,
255-
selectedFeatures,
252+
onboardingAdminsChatReportID,
253+
onboardingMessages,
256254
currentUserPersonalDetails?.firstName,
257255
currentUserPersonalDetails?.lastName,
256+
isSmallScreenWidth,
257+
isBetaEnabled,
258+
lastAccessReport,
259+
shouldPreventOpenAdminRoom,
258260
]);
259261

260262
// Create items for enabled features

src/pages/OnboardingPersonalDetails/BaseOnboardingPersonalDetails.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import useResponsiveLayout from '@hooks/useResponsiveLayout';
1818
import useThemeStyles from '@hooks/useThemeStyles';
1919
import {addErrorMessage} from '@libs/ErrorUtils';
2020
import {navigateAfterOnboardingWithMicrotaskQueue} from '@libs/navigateAfterOnboarding';
21+
import shouldOpenOnAdminRoom from '@libs/Navigation/helpers/shouldOpenOnAdminRoom';
2122
import Navigation from '@libs/Navigation/Navigation';
2223
import {isCurrentUserValidated} from '@libs/UserUtils';
2324
import {doesContainReservedWord, isValidDisplayName} from '@libs/ValidationUtils';
@@ -53,7 +54,7 @@ function BaseOnboardingPersonalDetails({currentUserPersonalDetails, shouldUseNat
5354
const [shouldValidateOnChange, setShouldValidateOnChange] = useState(false);
5455
const {isBetaEnabled} = usePermissions();
5556

56-
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS));
57+
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS), shouldOpenOnAdminRoom());
5758

5859
const isPrivateDomainAndHasAccessiblePolicies = !account?.isFromPublicDomain && !!account?.hasAccessibleDomainPolicies;
5960
const isValidated = isCurrentUserValidated(loginList);

src/pages/OnboardingWorkspaceInvite/BaseOnboardingWorkspaceInvite.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {canUseTouchScreen} from '@libs/DeviceCapabilities';
2727
import HttpUtils from '@libs/HttpUtils';
2828
import {appendCountryCode} from '@libs/LoginUtils';
2929
import {navigateAfterOnboardingWithMicrotaskQueue} from '@libs/navigateAfterOnboarding';
30+
import shouldOpenOnAdminRoom from '@libs/Navigation/helpers/shouldOpenOnAdminRoom';
3031
import type {MemberForList} from '@libs/OptionsListUtils';
3132
import {filterAndOrderOptions, formatMemberForList, getHeaderMessage, getMemberInviteOptions, getSearchValueForPhoneOrEmail} from '@libs/OptionsListUtils';
3233
import {addSMSDomainIfPhoneNumber, parsePhoneNumber} from '@libs/PhoneNumber';
@@ -63,7 +64,8 @@ function BaseOnboardingWorkspaceInvite({shouldUseNativeStyles}: BaseOnboardingWo
6364
const session = useSession();
6465
const {isBetaEnabled} = usePermissions();
6566

66-
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS));
67+
const shouldPreventOpenAdminRoom = (session?.email ?? '').includes('+');
68+
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS), shouldOpenOnAdminRoom() && !shouldPreventOpenAdminRoom);
6769

6870
const {options, areOptionsInitialized} = useOptionsList({
6971
shouldInitialize: didScreenTransitionEnd,
@@ -242,18 +244,18 @@ function BaseOnboardingWorkspaceInvite({shouldUseNativeStyles}: BaseOnboardingWo
242244
onboardingAdminsChatReportID,
243245
// Onboarding tasks would show in Concierge instead of admins room for testing accounts, we should open where onboarding tasks are located
244246
// See https://github.com/Expensify/App/issues/57167 for more details
245-
(session?.email ?? '').includes('+'),
247+
shouldPreventOpenAdminRoom,
246248
);
247249
}, [
248-
currentUserPersonalDetails.firstName,
249250
onboardingMessages,
251+
currentUserPersonalDetails.firstName,
250252
currentUserPersonalDetails.lastName,
251253
onboardingAdminsChatReportID,
252254
onboardingPolicyID,
253-
lastAccessReport,
254255
isSmallScreenWidth,
255256
isBetaEnabled,
256-
session?.email,
257+
lastAccessReport,
258+
shouldPreventOpenAdminRoom,
257259
]);
258260

259261
const inviteUser = useCallback(() => {

src/pages/OnboardingWorkspaceOptional/BaseOnboardingWorkspaceOptional.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import usePermissions from '@hooks/usePermissions';
1616
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1717
import useThemeStyles from '@hooks/useThemeStyles';
1818
import {navigateAfterOnboardingWithMicrotaskQueue} from '@libs/navigateAfterOnboarding';
19+
import shouldOpenOnAdminRoom from '@libs/Navigation/helpers/shouldOpenOnAdminRoom';
1920
import Navigation from '@libs/Navigation/Navigation';
2021
import {completeOnboarding as completeOnboardingReport} from '@userActions/Report';
2122
import {setOnboardingAdminsChatReportID, setOnboardingErrorMessage, setOnboardingPolicyID} from '@userActions/Welcome';
@@ -49,7 +50,7 @@ function BaseOnboardingWorkspaceOptional({shouldUseNativeStyles}: BaseOnboarding
4950
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
5051
const {isBetaEnabled} = usePermissions();
5152

52-
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS));
53+
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS), shouldOpenOnAdminRoom());
5354
const ICON_SIZE = 48;
5455

5556
const processedHelperText = `<comment><muted-text-label>${translate('onboarding.workspace.price')}</muted-text-label></comment>`;

src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import usePermissions from '@hooks/usePermissions';
1717
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1818
import useThemeStyles from '@hooks/useThemeStyles';
1919
import {navigateAfterOnboardingWithMicrotaskQueue} from '@libs/navigateAfterOnboarding';
20+
import shouldOpenOnAdminRoom from '@libs/Navigation/helpers/shouldOpenOnAdminRoom';
2021
import Navigation from '@libs/Navigation/Navigation';
2122
import {getDefaultWorkspaceAvatar} from '@libs/ReportUtils';
2223
import {isCurrentUserValidated} from '@libs/UserUtils';
@@ -53,7 +54,7 @@ function BaseOnboardingWorkspaces({route, shouldUseNativeStyles}: BaseOnboarding
5354

5455
const {isBetaEnabled} = usePermissions();
5556

56-
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS));
57+
const {lastAccessReport} = useLastAccessedReport(!isBetaEnabled(CONST.BETAS.DEFAULT_ROOMS), shouldOpenOnAdminRoom());
5758

5859
const [onboardingValues] = useOnyx(ONYXKEYS.NVP_ONBOARDING, {canBeMissing: true});
5960
const isVsb = onboardingValues?.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB;

tests/unit/navigateAfterOnboardingTest.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ describe('navigateAfterOnboarding', () => {
8888
};
8989
await Onyx.set(ONYXKEYS.CONCIERGE_REPORT_ID, REPORT_ID);
9090
await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT}${REPORT_ID}`, lastAccessedReport);
91-
mockFindLastAccessedReport.mockReturnValue(lastAccessedReport);
9291
mockShouldOpenOnAdminRoom.mockReturnValue(false);
9392

9493
navigateAfterOnboarding(true, true, lastAccessedReport, ONBOARDING_POLICY_ID, ONBOARDING_ADMINS_CHAT_REPORT_ID);
@@ -97,7 +96,6 @@ describe('navigateAfterOnboarding', () => {
9796

9897
it('should not navigate to last accessed report if it is onboarding expense chat on small screens', () => {
9998
const lastAccessedReport = {reportID: REPORT_ID, policyID: ONBOARDING_POLICY_ID};
100-
mockFindLastAccessedReport.mockReturnValue(lastAccessedReport);
10199
mockShouldOpenOnAdminRoom.mockReturnValue(false);
102100

103101
navigateAfterOnboarding(true, true, lastAccessedReport, ONBOARDING_POLICY_ID, ONBOARDING_ADMINS_CHAT_REPORT_ID);
@@ -107,7 +105,6 @@ describe('navigateAfterOnboarding', () => {
107105
it('should navigate to last accessed report if shouldOpenOnAdminRoom is true on small screens', () => {
108106
const navigate = jest.spyOn(Navigation, 'navigate');
109107
const lastAccessedReport = {reportID: REPORT_ID};
110-
mockFindLastAccessedReport.mockReturnValue(lastAccessedReport);
111108
mockShouldOpenOnAdminRoom.mockReturnValue(true);
112109

113110
navigateAfterOnboarding(true, true, lastAccessedReport, ONBOARDING_POLICY_ID, ONBOARDING_ADMINS_CHAT_REPORT_ID);
@@ -117,7 +114,6 @@ describe('navigateAfterOnboarding', () => {
117114
it('should navigate to Concierge room if user uses a test email', () => {
118115
const navigate = jest.spyOn(Navigation, 'navigate');
119116
const lastAccessedReport = {reportID: REPORT_ID};
120-
mockFindLastAccessedReport.mockReturnValue(lastAccessedReport);
121117
mockShouldOpenOnAdminRoom.mockReturnValue(true);
122118
const testSession = {email: 'test+account@gmail.com'};
123119

0 commit comments

Comments
 (0)