Skip to content

Commit b7d8618

Browse files
authored
feat(onboarding): video tutorials link (#1450)
1 parent 6f386b7 commit b7d8618

3 files changed

Lines changed: 41 additions & 42 deletions

File tree

packages/slice-machine/src/features/onboarding/OnboardingGuide/OnboardingGuide.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
OnboardingProvider,
1414
useOnboardingContext,
1515
} from "@/features/onboarding/OnboardingProvider";
16+
import { OnboardingTutorial } from "@/features/onboarding/OnboardingTutorial/OnboardingTutorial";
1617
import { useOnboardingCardVisibilityExperiment } from "@/features/onboarding/useOnboardingCardVisibilityExperiment";
1718
import { useOnboardingExperiment } from "@/features/onboarding/useOnboardingExperiment";
1819
import { useUpdateAvailable } from "@/hooks/useUpdateAvailable";
@@ -101,6 +102,7 @@ function OnboardingGuideCard() {
101102
getValueLabel={(value, max) => `${value}/${max}`}
102103
/>
103104
<OnboardingProgressStepper buttonSize={buttonSize} />
105+
{isOnboardingCardVisibilityExperiment && <OnboardingTutorial />}
104106
</CardContent>
105107
</Card>
106108
</div>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { Box, Icon, Text } from "@prismicio/editor-ui";
2+
3+
import { useOnboardingCardVisibilityExperiment } from "@/features/onboarding/useOnboardingCardVisibilityExperiment";
4+
import { useMarketingContent } from "@/hooks/useMarketingContent";
5+
6+
export function OnboardingTutorial() {
7+
const { variant } = useOnboardingCardVisibilityExperiment();
8+
const { tutorial } = useMarketingContent();
9+
10+
const color = variant === "dark" ? "white" : "grey11";
11+
const url = tutorial?.url;
12+
13+
if (url === undefined) return null;
14+
15+
return (
16+
<Box justifyContent="center" padding={{ block: 6 }}>
17+
<Text href={url} variant="smallBold" color={color}>
18+
Or watch our full course
19+
<Icon
20+
name="playCircle"
21+
color={color}
22+
size="small"
23+
sx={{ marginLeft: 4 }}
24+
/>
25+
</Text>
26+
</Box>
27+
);
28+
}
Lines changed: 11 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,8 @@
11
import { useAdapterName } from "./useAdapterName";
22

33
type MarketingContent = {
4-
tutorial: {
5-
link: {
6-
title: string;
7-
url: string;
8-
};
9-
tooltip: {
10-
title: string;
11-
description: string;
12-
closeButton?: string;
13-
video?: {
14-
cloudName: string;
15-
publicId: string;
16-
poster: string;
17-
};
18-
};
4+
tutorial?: {
5+
url: string;
196
};
207
masterSliceLibrary?: {
218
exampleLinkUrl: string;
@@ -27,21 +14,7 @@ type MarketingContent = {
2714
const CONTENT_BY_ADAPTER: Record<string, MarketingContent> = {
2815
"@slicemachine/adapter-next": {
2916
tutorial: {
30-
link: {
31-
title: "Learn Prismic",
32-
url: "https://prismic.io/academy/prismic-and-nextjs",
33-
},
34-
tooltip: {
35-
title: "Need Help?",
36-
description:
37-
"Learn how to turn a Next.js website into a page builder powered by Prismic.",
38-
closeButton: "Got it",
39-
video: {
40-
cloudName: "dmtf1daqp",
41-
publicId: "Tooltips/pa-course-overview_eaopsn",
42-
poster: "/prismic-academy-101.png",
43-
},
44-
},
17+
url: "https://prismic.dev/course/next",
4518
},
4619
masterSliceLibrary: {
4720
exampleLinkUrl: "https://slicify-app.vercel.app/slice-library",
@@ -51,24 +24,20 @@ const CONTENT_BY_ADAPTER: Record<string, MarketingContent> = {
5124
"https://res.cloudinary.com/dmtf1daqp/video/upload/v1715957263/Slice_library_video_oemhy0.mp4",
5225
},
5326
},
54-
};
55-
56-
const DEFAULT_CONTENT: MarketingContent = {
57-
tutorial: {
58-
link: {
59-
title: "Learn Prismic",
60-
url: "https://youtube.com/playlist?list=PLUVZjQltoA3wnaQudcqQ3qdZNZ6hyfyhH",
27+
"@slicemachine/adapter-nuxt": {
28+
tutorial: {
29+
url: "https://prismic.dev/course/nuxt",
6130
},
62-
tooltip: {
63-
title: "Need Help?",
64-
description:
65-
"Follow our Quick Start guide to learn the basics of Slice Machine",
31+
},
32+
"@slicemachine/adapter-sveltekit": {
33+
tutorial: {
34+
url: "https://prismic.dev/course/sveltekit",
6635
},
6736
},
6837
};
6938

7039
export function useMarketingContent(): MarketingContent {
7140
const adapterName = useAdapterName();
7241

73-
return CONTENT_BY_ADAPTER[adapterName] ?? DEFAULT_CONTENT;
42+
return CONTENT_BY_ADAPTER[adapterName] ?? {};
7443
}

0 commit comments

Comments
 (0)