From cb93dd25ee67ccb08bf3aea3281b30f11371589a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Ch=C3=A1vez?= Date: Thu, 19 Mar 2026 12:37:28 -0600 Subject: [PATCH] Revert "Add rhpHomePage variant (D) to onboarding A/B/C/D test" (#85273) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts merge commit d1f626f8880 because the control variant regressed — it no longer lands on the Home view after onboarding. Reverting to restore correct behavior while the fix is reworked. Made-with: Cursor --- src/CONST/index.ts | 1 - .../SidePanel/RHPVariantTest/index.native.ts | 6 ++--- .../SidePanel/RHPVariantTest/index.ts | 26 ++++--------------- .../SidePanel/RHPVariantTest/types.ts | 6 ++--- src/libs/navigateAfterOnboarding.ts | 8 ++---- .../BaseOnboardingInterestedFeatures.tsx | 9 +------ src/types/onyx/OnboardingRHPVariant.ts | 5 ++-- 7 files changed, 14 insertions(+), 47 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index fd639cd184dbd..1f884015b11f3 100644 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -6427,7 +6427,6 @@ const CONST = { ONBOARDING_RHP_VARIANT: { RHP_CONCIERGE_DM: 'rhpConciergeDm', RHP_ADMINS_ROOM: 'rhpAdminsRoom', - RHP_HOME_PAGE: 'rhpHomePage', CONTROL: 'control', }, ACTIONABLE_TRACK_EXPENSE_WHISPER_MESSAGE: 'What would you like to do with this expense?', diff --git a/src/components/SidePanel/RHPVariantTest/index.native.ts b/src/components/SidePanel/RHPVariantTest/index.native.ts index 53127b64b42c4..466080a1b07d8 100644 --- a/src/components/SidePanel/RHPVariantTest/index.native.ts +++ b/src/components/SidePanel/RHPVariantTest/index.native.ts @@ -3,13 +3,11 @@ import type {HandleRHPVariantNavigation, ShouldOpenRHPVariant} from './types'; /** * Side Panel is not supported on native platforms, so we always return false. */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -const shouldOpenRHPVariant: ShouldOpenRHPVariant = (_variantOverride) => false; +const shouldOpenRHPVariant: ShouldOpenRHPVariant = () => false; /** * No-op on native platforms since Side Panel is not supported. */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -const handleRHPVariantNavigation: HandleRHPVariantNavigation = (_onboardingPolicyID, _variantOverride) => {}; +const handleRHPVariantNavigation: HandleRHPVariantNavigation = () => {}; export {shouldOpenRHPVariant, handleRHPVariantNavigation}; diff --git a/src/components/SidePanel/RHPVariantTest/index.ts b/src/components/SidePanel/RHPVariantTest/index.ts index 1f6ba8f3393e2..43cfe8e7d11d2 100644 --- a/src/components/SidePanel/RHPVariantTest/index.ts +++ b/src/components/SidePanel/RHPVariantTest/index.ts @@ -29,19 +29,13 @@ Onyx.connectWithoutView({ /** * Determines if the user should be navigated to the RHP variant side panel after onboarding. * The RHP variant is only shown to micro companies that are part of the RHP experiment. - * - * Accepts an optional variantOverride to bypass the module-level Onyx variable, avoiding a race - * condition where the Onyx callback hasn't fired yet when this is called immediately after the - * CompleteGuidedSetup API response. */ -const shouldOpenRHPVariant: ShouldOpenRHPVariant = (variantOverride) => { - const variant = variantOverride ?? onboardingRHPVariant; +const shouldOpenRHPVariant: ShouldOpenRHPVariant = () => { const isMicroCompany = onboardingCompanySize === CONST.ONBOARDING_COMPANY_SIZE.MICRO; - const isRHPConciergeDM = variant === CONST.ONBOARDING_RHP_VARIANT.RHP_CONCIERGE_DM; - const isRHPAdminsRoom = variant === CONST.ONBOARDING_RHP_VARIANT.RHP_ADMINS_ROOM; - const isRHPHomePage = variant === CONST.ONBOARDING_RHP_VARIANT.RHP_HOME_PAGE; + const isRHPConciergeDM = onboardingRHPVariant === CONST.ONBOARDING_RHP_VARIANT.RHP_CONCIERGE_DM; + const isRHPAdminsRoom = onboardingRHPVariant === CONST.ONBOARDING_RHP_VARIANT.RHP_ADMINS_ROOM; - return isMicroCompany && (isRHPConciergeDM || isRHPAdminsRoom || isRHPHomePage); + return isMicroCompany && (isRHPConciergeDM || isRHPAdminsRoom); }; /** @@ -49,18 +43,8 @@ const shouldOpenRHPVariant: ShouldOpenRHPVariant = (variantOverride) => { * - Control: navigate to the last accessed report on small screens, do not open side panel * - RHP Concierge DM: navigate to the workspace overview and open the side panel with the Concierge DM * - RHP Admins Room: navigate to the workspace overview and open the side panel with the Admins Room - * - RHP Home Page: navigate to the Home page and open the side panel with the Concierge DM - * - * Accepts an optional variantOverride for the same race-condition reason as shouldOpenRHPVariant. */ -const handleRHPVariantNavigation: HandleRHPVariantNavigation = (onboardingPolicyID, variantOverride) => { - const variant = variantOverride ?? onboardingRHPVariant; - if (variant === CONST.ONBOARDING_RHP_VARIANT.RHP_HOME_PAGE) { - Navigation.navigate(ROUTES.HOME); - SidePanelActions.openSidePanel(true); - return; - } - +const handleRHPVariantNavigation: HandleRHPVariantNavigation = (onboardingPolicyID) => { Navigation.navigate(ROUTES.WORKSPACE_OVERVIEW.getRoute(onboardingPolicyID)); SidePanelActions.openSidePanel(true); }; diff --git a/src/components/SidePanel/RHPVariantTest/types.ts b/src/components/SidePanel/RHPVariantTest/types.ts index 15dff41a1af68..7efd441c05264 100644 --- a/src/components/SidePanel/RHPVariantTest/types.ts +++ b/src/components/SidePanel/RHPVariantTest/types.ts @@ -1,6 +1,4 @@ -import type {OnboardingRHPVariant} from '@src/types/onyx'; - -type ShouldOpenRHPVariant = (variantOverride?: OnboardingRHPVariant | null) => boolean; -type HandleRHPVariantNavigation = (onboardingPolicyID?: string, variantOverride?: OnboardingRHPVariant | null) => void; +type ShouldOpenRHPVariant = () => boolean; +type HandleRHPVariantNavigation = (onboardingPolicyID?: string) => void; export type {ShouldOpenRHPVariant, HandleRHPVariantNavigation}; diff --git a/src/libs/navigateAfterOnboarding.ts b/src/libs/navigateAfterOnboarding.ts index 8c7b4b8e0bacd..cfb8de469374a 100644 --- a/src/libs/navigateAfterOnboarding.ts +++ b/src/libs/navigateAfterOnboarding.ts @@ -1,6 +1,5 @@ import {handleRHPVariantNavigation, shouldOpenRHPVariant} from '@components/SidePanel/RHPVariantTest'; import ROUTES from '@src/ROUTES'; -import type {OnboardingRHPVariant} from '@src/types/onyx'; import {setDisableDismissOnEscape} from './actions/Modal'; import shouldOpenOnAdminRoom from './Navigation/helpers/shouldOpenOnAdminRoom'; import Navigation from './Navigation/Navigation'; @@ -51,12 +50,11 @@ function navigateAfterOnboarding( onboardingPolicyID?: string, onboardingAdminsChatReportID?: string, shouldPreventOpenAdminRoom = false, - onboardingRHPVariant?: OnboardingRHPVariant | null, ) { setDisableDismissOnEscape(false); - if (shouldOpenRHPVariant(onboardingRHPVariant)) { - handleRHPVariantNavigation(onboardingPolicyID, onboardingRHPVariant); + if (shouldOpenRHPVariant()) { + handleRHPVariantNavigation(onboardingPolicyID); return; } @@ -85,7 +83,6 @@ function navigateAfterOnboardingWithMicrotaskQueue( onboardingPolicyID?: string, onboardingAdminsChatReportID?: string, shouldPreventOpenAdminRoom = false, - onboardingRHPVariant?: OnboardingRHPVariant | null, ) { Navigation.dismissModal(); Navigation.setNavigationActionToMicrotaskQueue(() => { @@ -97,7 +94,6 @@ function navigateAfterOnboardingWithMicrotaskQueue( onboardingPolicyID, onboardingAdminsChatReportID, shouldPreventOpenAdminRoom, - onboardingRHPVariant, ); }); } diff --git a/src/pages/OnboardingInterestedFeatures/BaseOnboardingInterestedFeatures.tsx b/src/pages/OnboardingInterestedFeatures/BaseOnboardingInterestedFeatures.tsx index f82c35907926c..062d0d91664be 100644 --- a/src/pages/OnboardingInterestedFeatures/BaseOnboardingInterestedFeatures.tsx +++ b/src/pages/OnboardingInterestedFeatures/BaseOnboardingInterestedFeatures.tsx @@ -36,7 +36,6 @@ import type {TranslationPaths} from '@src/languages/types'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import SCREENS from '@src/SCREENS'; -import type {OnboardingRHPVariant} from '@src/types/onyx'; import type {BaseOnboardingInterestedFeaturesProps, Feature, SectionObject} from './types'; function BaseOnboardingInterestedFeatures({shouldUseNativeStyles}: BaseOnboardingInterestedFeaturesProps) { @@ -220,7 +219,7 @@ function BaseOnboardingInterestedFeatures({shouldUseNativeStyles}: BaseOnboardin setOnboardingPolicyID(policyID); } - const response = await completeOnboarding({ + await completeOnboarding({ engagementChoice: onboardingPurposeSelected, onboardingMessage: onboardingMessages[onboardingPurposeSelected], adminsChatReportID, @@ -236,11 +235,6 @@ function BaseOnboardingInterestedFeatures({shouldUseNativeStyles}: BaseOnboardin betas, }); - // Extract the RHP variant directly from the API response to avoid a race condition - // where the Onyx callback hasn't fired yet when navigateAfterOnboarding is called. - const rhpVariantUpdate = (response?.onyxData as Array<{key: string; value: unknown}> | undefined)?.find((update) => update.key === ONYXKEYS.NVP_ONBOARDING_RHP_VARIANT); - const rhpVariant = rhpVariantUpdate?.value as OnboardingRHPVariant | undefined; - // Avoid creating new WS because onboardingPolicyID is cleared before unmounting // eslint-disable-next-line @typescript-eslint/no-deprecated InteractionManager.runAfterInteractions(() => { @@ -259,7 +253,6 @@ function BaseOnboardingInterestedFeatures({shouldUseNativeStyles}: BaseOnboardin // Onboarding tasks would show in Concierge instead of admins room for testing accounts, we should open where onboarding tasks are located // See https://github.com/Expensify/App/issues/57167 for more details (session?.email ?? '').includes('+'), - rhpVariant, ); } catch (error) { Log.warn('[BaseOnboardingInterestedFeatures] Error completing onboarding', {error}); diff --git a/src/types/onyx/OnboardingRHPVariant.ts b/src/types/onyx/OnboardingRHPVariant.ts index 9ac25b94c31cc..271e1977e7370 100644 --- a/src/types/onyx/OnboardingRHPVariant.ts +++ b/src/types/onyx/OnboardingRHPVariant.ts @@ -1,10 +1,9 @@ /** - * The variant of the onboarding RHP for A/B/C/D testing + * The variant of the onboarding RHP for A/B/C testing * @description 'control' - The variant with the Concierge DM * @description 'rhpConciergeDm' - Admin of workspace with Concierge DM * @description 'rhpAdminsRoom' - Admin of workspace with the admins room - * @description 'rhpHomePage' - Navigate to Home page with Concierge Anywhere accessible in #admins room */ -type OnboardingRHPVariant = 'rhpConciergeDm' | 'rhpAdminsRoom' | 'rhpHomePage' | 'control'; +type OnboardingRHPVariant = 'rhpConciergeDm' | 'rhpAdminsRoom' | 'control'; export default OnboardingRHPVariant;