Skip to content

Commit dab07bb

Browse files
authored
ref(onboarding): Move onboarding context into onboarding (#100770)
Move the onboarding context provider into the onboarding route instead of wrapping it around the whole app. Reduces risk of breaking things and reduces wrong issue assignments via codeowners.
1 parent bd7726d commit dab07bb

File tree

4 files changed

+40
-35
lines changed

4 files changed

+40
-35
lines changed

static/app/main.tsx

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {NuqsAdapter} from 'nuqs/adapters/react-router/v6';
66

77
import {AppQueryClientProvider} from 'sentry/appQueryClient';
88
import {FrontendVersionProvider} from 'sentry/components/frontendVersionContext';
9-
import {OnboardingContextProvider} from 'sentry/components/onboarding/onboardingContext';
109
import {ThemeAndStyleProvider} from 'sentry/components/themeAndStyleProvider';
1110
import {SENTRY_RELEASE_VERSION, USE_REACT_QUERY_DEVTOOL} from 'sentry/constants';
1211
import {routes} from 'sentry/routes';
@@ -28,13 +27,11 @@ function Main() {
2827
<AppQueryClientProvider>
2928
<FrontendVersionProvider releaseVersion={SENTRY_RELEASE_VERSION ?? null}>
3029
<ThemeAndStyleProvider>
31-
<OnboardingContextProvider>
32-
<SentryTrackingProvider>
33-
<NuqsAdapter defaultOptions={{shallow: false}}>
34-
<RouterProvider router={router} />
35-
</NuqsAdapter>
36-
</SentryTrackingProvider>
37-
</OnboardingContextProvider>
30+
<SentryTrackingProvider>
31+
<NuqsAdapter defaultOptions={{shallow: false}}>
32+
<RouterProvider router={router} />
33+
</NuqsAdapter>
34+
</SentryTrackingProvider>
3835
{USE_REACT_QUERY_DEVTOOL && (
3936
<ReactQueryDevtools initialIsOpen={false} buttonPosition="bottom-left" />
4037
)}

static/app/views/onboarding/onboarding.spec.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import * as useRecentCreatedProjectHook from 'sentry/components/onboarding/useRe
1515
import ProjectsStore from 'sentry/stores/projectsStore';
1616
import TeamStore from 'sentry/stores/teamStore';
1717
import type {PlatformKey, Project} from 'sentry/types/project';
18-
import Onboarding from 'sentry/views/onboarding/onboarding';
18+
import {OnboardingWithoutContext} from 'sentry/views/onboarding/onboarding';
1919

2020
describe('Onboarding', () => {
2121
beforeAll(() => {
@@ -39,7 +39,7 @@ describe('Onboarding', () => {
3939

4040
render(
4141
<OnboardingContextProvider>
42-
<Onboarding {...routerProps} />
42+
<OnboardingWithoutContext {...routerProps} />
4343
</OnboardingContextProvider>,
4444
{
4545
organization,
@@ -62,7 +62,7 @@ describe('Onboarding', () => {
6262

6363
render(
6464
<OnboardingContextProvider>
65-
<Onboarding {...routerProps} />
65+
<OnboardingWithoutContext {...routerProps} />
6666
</OnboardingContextProvider>,
6767
{
6868
organization,
@@ -139,7 +139,7 @@ describe('Onboarding', () => {
139139
},
140140
}}
141141
>
142-
<Onboarding {...routerProps} />
142+
<OnboardingWithoutContext {...routerProps} />
143143
</OnboardingContextProvider>,
144144
{
145145
organization,
@@ -209,7 +209,7 @@ describe('Onboarding', () => {
209209
},
210210
}}
211211
>
212-
<Onboarding {...routerProps} />
212+
<OnboardingWithoutContext {...routerProps} />
213213
</OnboardingContextProvider>,
214214
{
215215
organization,
@@ -243,7 +243,7 @@ describe('Onboarding', () => {
243243

244244
render(
245245
<OnboardingContextProvider>
246-
<Onboarding {...routerProps} />
246+
<OnboardingWithoutContext {...routerProps} />
247247
</OnboardingContextProvider>,
248248
{
249249
organization,
@@ -319,7 +319,7 @@ describe('Onboarding', () => {
319319
},
320320
}}
321321
>
322-
<Onboarding {...routerProps} />
322+
<OnboardingWithoutContext {...routerProps} />
323323
</OnboardingContextProvider>,
324324
{
325325
organization,
@@ -372,7 +372,7 @@ describe('Onboarding', () => {
372372

373373
render(
374374
<OnboardingContextProvider>
375-
<Onboarding {...routerProps} />
375+
<OnboardingWithoutContext {...routerProps} />
376376
</OnboardingContextProvider>,
377377
{
378378
organization,

static/app/views/onboarding/onboarding.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ import {Button} from 'sentry/components/core/button';
66
import {Link} from 'sentry/components/core/link';
77
import Hook from 'sentry/components/hook';
88
import LogoSentry from 'sentry/components/logoSentry';
9-
import {useOnboardingContext} from 'sentry/components/onboarding/onboardingContext';
9+
import {
10+
OnboardingContextProvider,
11+
useOnboardingContext,
12+
} from 'sentry/components/onboarding/onboardingContext';
1013
import {useRecentCreatedProject} from 'sentry/components/onboarding/useRecentCreatedProject';
1114
import Redirect from 'sentry/components/redirect';
1215
import SentryDocumentTitle from 'sentry/components/sentryDocumentTitle';
@@ -61,7 +64,7 @@ export const onboardingSteps: StepDescriptor[] = [
6164
},
6265
];
6366

64-
function Onboarding(props: Props) {
67+
export function OnboardingWithoutContext(props: Props) {
6568
const organization = useOrganization();
6669
const onboardingContext = useOnboardingContext();
6770
const selectedProjectSlug = onboardingContext.selectedPlatform?.key;
@@ -327,6 +330,14 @@ function Onboarding(props: Props) {
327330
);
328331
}
329332

333+
function Onboarding(props: Props) {
334+
return (
335+
<OnboardingContextProvider>
336+
<OnboardingWithoutContext {...props} />
337+
</OnboardingContextProvider>
338+
);
339+
}
340+
330341
const Container = styled('div')<{hasFooter: boolean}>`
331342
flex-grow: 1;
332343
display: flex;

static/app/views/projectInstall/gettingStarted.tsx

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import styled from '@emotion/styled';
22

33
import * as Layout from 'sentry/components/layouts/thirds';
44
import LoadingIndicator from 'sentry/components/loadingIndicator';
5-
import {OnboardingContextProvider} from 'sentry/components/onboarding/onboardingContext';
65
import Redirect from 'sentry/components/redirect';
76
import allPlatforms from 'sentry/data/platforms';
87
import {space} from 'sentry/styles/space';
@@ -33,22 +32,20 @@ function GettingStarted({params}: Props) {
3332
const currentPlatform = allPlatforms.find(p => p.id === currentPlatformKey);
3433

3534
return (
36-
<OnboardingContextProvider>
37-
<GettingStartedLayout withPadding>
38-
{loadingProjects ? (
39-
<LoadingIndicator />
40-
) : project ? (
41-
<ProjectInstallPlatform project={project} platform={currentPlatform} />
42-
) : (
43-
<Redirect
44-
to={makeProjectsPathname({
45-
path: `/new/`,
46-
organization,
47-
})}
48-
/>
49-
)}
50-
</GettingStartedLayout>
51-
</OnboardingContextProvider>
35+
<GettingStartedLayout withPadding>
36+
{loadingProjects ? (
37+
<LoadingIndicator />
38+
) : project ? (
39+
<ProjectInstallPlatform project={project} platform={currentPlatform} />
40+
) : (
41+
<Redirect
42+
to={makeProjectsPathname({
43+
path: `/new/`,
44+
organization,
45+
})}
46+
/>
47+
)}
48+
</GettingStartedLayout>
5249
);
5350
}
5451

0 commit comments

Comments
 (0)