diff --git a/src/App.test.tsx b/src/App.test.tsx index 93afca9b91..5b4143bd4a 100644 --- a/src/App.test.tsx +++ b/src/App.test.tsx @@ -84,7 +84,6 @@ const user = { student: false, studentCreatedAt: null, studentUpdatedAt: null, - customerIntent: 'PERSONAL', }, trackingMetadata: { service: 'github', diff --git a/src/assets/onboarding/org_list_install_app.png b/src/assets/onboarding/org_list_install_app.png new file mode 100644 index 0000000000..4562ae092e Binary files /dev/null and b/src/assets/onboarding/org_list_install_app.png differ diff --git a/src/layouts/BaseLayout/BaseLayout.test.tsx b/src/layouts/BaseLayout/BaseLayout.test.tsx index 964d7460b0..c5b40131ac 100644 --- a/src/layouts/BaseLayout/BaseLayout.test.tsx +++ b/src/layouts/BaseLayout/BaseLayout.test.tsx @@ -27,13 +27,7 @@ const mockedUseImpersonate = useImpersonate as Mock vi.mock('shared/GlobalTopBanners', () => ({ default: () => 'GlobalTopBanners', })) -vi.mock('./InstallationHelpBanner', () => ({ - default: () => 'InstallationHelpBanner', -})) vi.mock('pages/TermsOfService', () => ({ default: () => 'TermsOfService' })) -vi.mock('pages/DefaultOrgSelector', () => ({ - default: () => 'DefaultOrgSelector', -})) vi.mock('layouts/Header', () => ({ default: () => 'Header' })) vi.mock('layouts/Footer', () => ({ default: () => 'Footer' })) @@ -53,7 +47,6 @@ const mockUser = { student: false, studentCreatedAt: null, studentUpdatedAt: null, - customerIntent: 'BUSINESS', externalId: 'asdf', owners: [ { @@ -330,9 +323,6 @@ describe('BaseLayout', () => { const hello = screen.getByText('hello') expect(hello).toBeInTheDocument() - const defaultOrg = screen.queryByText(/DefaultOrgSelector/) - expect(defaultOrg).not.toBeInTheDocument() - const termsOfService = screen.queryByText(/TermsOfService/) expect(termsOfService).not.toBeInTheDocument() }) @@ -352,9 +342,6 @@ describe('BaseLayout', () => { const hello = screen.getByText('hello') expect(hello).toBeInTheDocument() - const defaultOrg = screen.queryByText(/DefaultOrgSelector/) - expect(defaultOrg).not.toBeInTheDocument() - const termsOfService = screen.queryByText(/TermsOfService/) expect(termsOfService).not.toBeInTheDocument() }) @@ -385,60 +372,11 @@ describe('BaseLayout', () => { const header = screen.queryByText(/Header/) expect(header).not.toBeInTheDocument() }) - - it('renders help banner', async () => { - setup({ - currentUser: userNoTermsAgreement, - internalUser: mockUserNoTermsAgreement, - }) - - render(hello, { wrapper: wrapper() }) - const helpBanner = await screen.findByText(/InstallationHelpBanner/) - expect(helpBanner).toBeInTheDocument() - }) - }) - - describe('when no default org selected', () => { - it('renders the default org selector', async () => { - setup({ - currentUser: loggedInUser, - internalUser: mockUser, - }) - render(hello, { wrapper: wrapper() }) - - const defaultOrgSelector = await screen.findByText(/DefaultOrgSelector/) - expect(defaultOrgSelector).toBeInTheDocument() - }) - - it('does not render the header', async () => { - setup({ - currentUser: loggedInUser, - internalUser: mockUser, - }) - render(hello, { wrapper: wrapper() }) - - const defaultOrgSelector = await screen.findByText(/DefaultOrgSelector/) - expect(defaultOrgSelector).toBeInTheDocument() - - const header = screen.queryByText(/Header/) - expect(header).not.toBeInTheDocument() - }) - - it('renders help banner', async () => { - setup({ - currentUser: loggedInUser, - internalUser: mockUser, - }) - - render(hello, { wrapper: wrapper() }) - const helpBanner = await screen.findByText(/InstallationHelpBanner/) - expect(helpBanner).toBeInTheDocument() - }) }) - describe('when agreed to TOS and default org selected', () => { + describe('when agreed to TOS', () => { it('renders children', async () => { - setup({ currentUser: userHasDefaultOrg }) + setup({ currentUser: loggedInUser }) render(hello, { wrapper: wrapper() }) const children = await screen.findByText(/hello/) @@ -446,7 +384,7 @@ describe('BaseLayout', () => { }) it('renders header', async () => { - setup({ currentUser: userHasDefaultOrg }) + setup({ currentUser: loggedInUser }) render(hello, { wrapper: wrapper() }) const header = await screen.findByText(/Header/) @@ -488,9 +426,6 @@ describe('BaseLayout', () => { const hello = screen.getByText('hello') expect(hello).toBeInTheDocument() - const defaultOrg = screen.queryByText(/DefaultOrgSelector/) - expect(defaultOrg).not.toBeInTheDocument() - const termsOfService = screen.queryByText(/TermsOfService/) expect(termsOfService).not.toBeInTheDocument() }) @@ -510,9 +445,6 @@ describe('BaseLayout', () => { const hello = screen.getByText('hello') expect(hello).toBeInTheDocument() - const defaultOrg = screen.queryByText(/DefaultOrgSelector/) - expect(defaultOrg).not.toBeInTheDocument() - const termsOfService = screen.queryByText(/TermsOfService/) expect(termsOfService).not.toBeInTheDocument() }) @@ -550,15 +482,12 @@ describe('BaseLayout', () => { const header = await screen.findByText(/Header/) expect(header).toBeInTheDocument() - - const defaultOrgSelector = screen.queryByText(/DefaultOrgSelector/) - expect(defaultOrgSelector).not.toBeInTheDocument() }) }) describe('when agreed to TOS and default org selected', () => { it('renders children', async () => { - setup({ currentUser: userHasDefaultOrg }) + setup({ currentUser: loggedInUser }) render(hello, { wrapper: wrapper() }) const children = await screen.findByText(/hello/) @@ -566,7 +495,7 @@ describe('BaseLayout', () => { }) it('renders header', async () => { - setup({ currentUser: userHasDefaultOrg }) + setup({ currentUser: loggedInUser }) render(hello, { wrapper: wrapper() }) const header = await screen.findByText(/Header/) diff --git a/src/layouts/BaseLayout/BaseLayout.tsx b/src/layouts/BaseLayout/BaseLayout.tsx index 136dd46b43..22fd6e9287 100644 --- a/src/layouts/BaseLayout/BaseLayout.tsx +++ b/src/layouts/BaseLayout/BaseLayout.tsx @@ -9,6 +9,7 @@ import { EmptyErrorComponent } from 'layouts/shared/ErrorBoundary/ErrorBoundary' import NetworkErrorBoundary from 'layouts/shared/NetworkErrorBoundary' import SilentNetworkErrorWrapper from 'layouts/shared/SilentNetworkErrorWrapper' import ToastNotifications from 'layouts/ToastNotifications' +import { OnboardingContainerProvider } from 'pages/OwnerPage/OnboardingContainerContext/context' import { RepoBreadcrumbProvider } from 'pages/RepoPage/context' import { useEventContext } from 'services/events/hooks' import { useImpersonate } from 'services/impersonate' @@ -20,8 +21,6 @@ import LoadingLogo from 'ui/LoadingLogo' import { NavigatorDataQueryOpts } from './hooks/NavigatorDataQueryOpts' import { useUserAccessGate } from './hooks/useUserAccessGate' -const DefaultOrgSelector = lazy(() => import('pages/DefaultOrgSelector')) -const InstallationHelpBanner = lazy(() => import('./InstallationHelpBanner')) const TermsOfService = lazy(() => import('pages/TermsOfService')) const FullPageLoader = () => ( @@ -31,20 +30,16 @@ const FullPageLoader = () => ( ) interface OnboardingOrChildrenProps extends React.PropsWithChildren { - isImpersonating: boolean isFullExperience: boolean showAgreeToTerms: boolean redirectToSyncPage: boolean - showDefaultOrgSelector: boolean } function OnboardingOrChildren({ children, - isImpersonating, isFullExperience, showAgreeToTerms, redirectToSyncPage, - showDefaultOrgSelector, }: OnboardingOrChildrenProps) { if (showAgreeToTerms && !isFullExperience) { return ( @@ -58,14 +53,6 @@ function OnboardingOrChildren({ return } - if (showDefaultOrgSelector && !isFullExperience && !isImpersonating) { - return ( - - - - ) - } - return <>{children} } @@ -83,7 +70,6 @@ function BaseLayout({ children }: React.PropsWithChildren) { const { isFullExperience, showAgreeToTerms, - showDefaultOrgSelector, redirectToSyncPage, isLoading: isUserAccessGateLoading, } = useUserAccessGate() @@ -109,53 +95,49 @@ function BaseLayout({ children }: React.PropsWithChildren) { return ( <> - - {/* Header */} - - }> - - {isFullExperience || isImpersonating ? ( - <> - -
- - ) : ( - <> - {showDefaultOrgSelector ? : null} - - )} - - - - - {/* Main Page Contents */} - }> - - -
- - - {children} - -
-
-
-
- - {/* Footer */} - {isFullExperience && ( - <> -