diff --git a/src/hooks/usePreferredPolicy.ts b/src/hooks/usePreferredPolicy.ts index 804e4cef3782..2c3fa04f8f71 100644 --- a/src/hooks/usePreferredPolicy.ts +++ b/src/hooks/usePreferredPolicy.ts @@ -8,6 +8,9 @@ type UsePreferredPolicyResult = { /** The ID of the preferred policy */ preferredPolicyID: string | undefined; + + /** Whether the user is restricted from creating policies */ + isRestrictedPolicyCreation: boolean; }; /** @@ -36,6 +39,7 @@ function usePreferredPolicy(): UsePreferredPolicyResult { return { isRestrictedToPreferredPolicy: isRestrictionEnabled && hasValidPolicyID, preferredPolicyID: restrictedPolicyID, + isRestrictedPolicyCreation: securityGroup?.enableRestrictedPolicyCreation === true, }; } diff --git a/src/libs/Navigation/AppNavigator/usePreloadFullScreenNavigators.ts b/src/libs/Navigation/AppNavigator/usePreloadFullScreenNavigators.ts index 068430672414..9cb6a7aed8ec 100644 --- a/src/libs/Navigation/AppNavigator/usePreloadFullScreenNavigators.ts +++ b/src/libs/Navigation/AppNavigator/usePreloadFullScreenNavigators.ts @@ -99,7 +99,8 @@ function usePreloadFullScreenNavigators() { const navigation = useNavigation>(); const route = useRoute(); const state = navigation.getState(); - const preloadedRoutes = useMemo(() => state.preloadedRoutes, [state]); + // The fallback is used to prevent crashing from the UI test + const preloadedRoutes = useMemo(() => state.preloadedRoutes ?? [], [state]); const subscriptionPlan = useSubscriptionPlan(); const isAuthenticated = useIsAuthenticated(); const hasPreloadedRef = useRef(false); diff --git a/src/pages/OnboardingWorkspaceOptional/BaseOnboardingWorkspaceOptional.tsx b/src/pages/OnboardingWorkspaceOptional/BaseOnboardingWorkspaceOptional.tsx index 2f2733b75f36..2cf77a766e1d 100644 --- a/src/pages/OnboardingWorkspaceOptional/BaseOnboardingWorkspaceOptional.tsx +++ b/src/pages/OnboardingWorkspaceOptional/BaseOnboardingWorkspaceOptional.tsx @@ -12,6 +12,7 @@ import useLocalize from '@hooks/useLocalize'; import useOnboardingMessages from '@hooks/useOnboardingMessages'; import useOnyx from '@hooks/useOnyx'; import usePermissions from '@hooks/usePermissions'; +import usePreferredPolicy from '@hooks/usePreferredPolicy'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import {navigateAfterOnboardingWithMicrotaskQueue} from '@libs/navigateAfterOnboarding'; @@ -39,6 +40,7 @@ function BaseOnboardingWorkspaceOptional({shouldUseNativeStyles}: BaseOnboarding const [onboardingAdminsChatReportID] = useOnyx(ONYXKEYS.ONBOARDING_ADMINS_CHAT_REPORT_ID, {canBeMissing: true}); const [conciergeChatReportID] = useOnyx(ONYXKEYS.CONCIERGE_REPORT_ID, {canBeMissing: true}); const {onboardingMessages} = useOnboardingMessages(); + const {isRestrictedPolicyCreation} = usePreferredPolicy(); // When we merge public email with work email, we now want to navigate to the // concierge chat report of the new work email and not the last accessed report. const mergedAccountConciergeReportID = !onboardingValues?.shouldRedirectToClassicAfterMerge && onboardingValues?.shouldValidate ? conciergeChatReportID : undefined; @@ -150,17 +152,19 @@ function BaseOnboardingWorkspaceOptional({shouldUseNativeStyles}: BaseOnboarding onPress={() => completeOnboarding()} /> - -