Skip to content

Commit cbc41ee

Browse files
authored
Merge pull request Expensify#60888 from Expensify/lucien/fix-onboarding-flow-blocker
[CP Staging] Put private onboarding flow behind beta
2 parents 8870ad7 + 0c5866c commit cbc41ee

5 files changed

Lines changed: 14 additions & 4 deletions

File tree

src/CONST.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -809,6 +809,7 @@ const CONST = {
809809
LEFT_HAND_BAR: 'leftHandBar',
810810
WALLET: 'newdotWallet',
811811
GLOBAL_REIMBURSEMENTS_ON_ND: 'globalReimbursementsOnND',
812+
PRIVATE_DOMAIN_ONBOARDING: 'privateDomainOnboarding',
812813
},
813814
BUTTON_STATES: {
814815
DEFAULT: 'default',

src/libs/Navigation/AppNavigator/Navigators/OnboardingModalNavigator.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {useOnyx} from 'react-native-onyx';
55
import NoDropZone from '@components/DragAndDrop/NoDropZone';
66
import FocusTrapForScreens from '@components/FocusTrap/FocusTrapForScreen';
77
import useKeyboardShortcut from '@hooks/useKeyboardShortcut';
8+
import usePermissions from '@hooks/usePermissions';
89
import useResponsiveLayout from '@hooks/useResponsiveLayout';
910
import useThemeStyles from '@hooks/useThemeStyles';
1011
import GoogleTagManager from '@libs/GoogleTagManager';
@@ -39,8 +40,9 @@ function OnboardingModalNavigator() {
3940
const {onboardingIsMediumOrLargerScreenWidth} = useResponsiveLayout();
4041
const outerViewRef = React.useRef<View>(null);
4142
const [user] = useOnyx(ONYXKEYS.USER, {canBeMissing: true});
43+
const {canUsePrivateDomainOnboarding} = usePermissions();
4244

43-
const isOnPrivateDomainAndHasAccessiblePolicies = !user?.isFromPublicDomain && user?.hasAccessibleDomainPolicies;
45+
const isOnPrivateDomainAndHasAccessiblePolicies = canUsePrivateDomainOnboarding && !user?.isFromPublicDomain && user?.hasAccessibleDomainPolicies;
4446

4547
const [accountID] = useOnyx(ONYXKEYS.SESSION, {
4648
selector: (session) => session?.accountID ?? CONST.DEFAULT_NUMBER_ID,

src/libs/Permissions.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ function canUseGlobalReimbursementsOnND(betas: OnyxEntry<Beta[]>): boolean {
7070
return !!betas?.includes(CONST.BETAS.GLOBAL_REIMBURSEMENTS_ON_ND) || canUseAllBetas(betas);
7171
}
7272

73+
function canUsePrivateDomainOnboarding(betas: OnyxEntry<Beta[]>): boolean {
74+
return !!betas?.includes(CONST.BETAS.PRIVATE_DOMAIN_ONBOARDING) || canUseAllBetas(betas);
75+
}
76+
7377
export default {
7478
canUseDefaultRooms,
7579
canUseLinkPreviews,
@@ -86,4 +90,5 @@ export default {
8690
canUseLeftHandBar,
8791
canUseInAppProvisioning,
8892
canUseGlobalReimbursementsOnND,
93+
canUsePrivateDomainOnboarding,
8994
};

src/pages/OnboardingPersonalDetails/BaseOnboardingPersonalDetails.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ function BaseOnboardingPersonalDetails({currentUserPersonalDetails, shouldUseNat
4949
const {onboardingIsMediumOrLargerScreenWidth, isSmallScreenWidth} = useResponsiveLayout();
5050
const {inputCallbackRef} = useAutoFocusInput();
5151
const [shouldValidateOnChange, setShouldValidateOnChange] = useState(false);
52-
const {canUseDefaultRooms} = usePermissions();
52+
const {canUseDefaultRooms, canUsePrivateDomainOnboarding} = usePermissions();
5353
const {activeWorkspaceID} = useActiveWorkspace();
5454

55-
const isPrivateDomainAndHasAccesiblePolicies = !user?.isFromPublicDomain && !!user?.hasAccessibleDomainPolicies;
55+
const isPrivateDomainAndHasAccesiblePolicies = canUsePrivateDomainOnboarding && !user?.isFromPublicDomain && !!user?.hasAccessibleDomainPolicies;
5656
const isValidated = isCurrentUserValidated(loginList);
5757

5858
useEffect(() => {

src/pages/OnboardingPurpose/BaseOnboardingPurpose.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import OfflineIndicator from '@components/OfflineIndicator';
1212
import SafeAreaConsumer from '@components/SafeAreaConsumer';
1313
import Text from '@components/Text';
1414
import useLocalize from '@hooks/useLocalize';
15+
import usePermissions from '@hooks/usePermissions';
1516
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1617
import useTheme from '@hooks/useTheme';
1718
import useThemeStyles from '@hooks/useThemeStyles';
@@ -52,9 +53,10 @@ function BaseOnboardingPurpose({shouldUseNativeStyles, shouldEnableMaxHeight, ro
5253
const {translate} = useLocalize();
5354
const {onboardingIsMediumOrLargerScreenWidth} = useResponsiveLayout();
5455
const {windowHeight} = useWindowDimensions();
56+
const {canUsePrivateDomainOnboarding} = usePermissions();
5557
const [user] = useOnyx(ONYXKEYS.USER, {canBeMissing: true});
5658

57-
const isPrivateDomainAndHasAccesiblePolicies = !user?.isFromPublicDomain && !!user?.hasAccessibleDomainPolicies;
59+
const isPrivateDomainAndHasAccesiblePolicies = canUsePrivateDomainOnboarding && !user?.isFromPublicDomain && !!user?.hasAccessibleDomainPolicies;
5860

5961
// We need to use isSmallScreenWidth instead of shouldUseNarrowLayout to show offline indicator on small screen only
6062
// eslint-disable-next-line rulesdir/prefer-shouldUseNarrowLayout-instead-of-isSmallScreenWidth

0 commit comments

Comments
 (0)