diff --git a/packages/astro/src/default/components/OpenInStackblitzLink.astro b/packages/astro/src/default/components/OpenInStackblitzLink.astro deleted file mode 100644 index 1dd06becd..000000000 --- a/packages/astro/src/default/components/OpenInStackblitzLink.astro +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/packages/astro/src/default/components/OpenInStackblitzLink.tsx b/packages/astro/src/default/components/OpenInStackblitzLink.tsx new file mode 100644 index 000000000..dfbee937d --- /dev/null +++ b/packages/astro/src/default/components/OpenInStackblitzLink.tsx @@ -0,0 +1,37 @@ +import StackBlitzSDK from '@stackblitz/sdk'; +import { tutorialStore } from './webcontainer.js'; + +export function OpenInStackblitzLink() { + return ( + + ); +} + +function onClick() { + const lesson = tutorialStore.lesson; + + if (!lesson) { + throw new Error('Missing lesson'); + } + + const snapshot = tutorialStore.takeSnapshot(); + const options = typeof lesson.data.openInStackBlitz === 'object' ? lesson.data.openInStackBlitz : {}; + + StackBlitzSDK.openProject({ + title: options.projectTitle || 'Project generated by TutorialKit', + description: options.projectDescription, + template: options.projectTemplate || 'node', + files: snapshot.files, + }); +} diff --git a/packages/astro/src/default/components/TopBarWrapper.astro b/packages/astro/src/default/components/TopBarWrapper.astro index 6ea8b0cc7..1d3b89101 100644 --- a/packages/astro/src/default/components/TopBarWrapper.astro +++ b/packages/astro/src/default/components/TopBarWrapper.astro @@ -3,7 +3,7 @@ import { TopBar } from 'tutorialkit:override-components'; import type { Lesson } from '@tutorialkit/types'; import { ThemeSwitch } from './ThemeSwitch'; import { LoginButton } from './LoginButton'; -import OpenInStackblitzLink from './OpenInStackblitzLink.astro'; +import { OpenInStackblitzLink } from './OpenInStackblitzLink'; import Logo from './Logo.astro'; import { useAuth } from './setup'; @@ -18,7 +18,7 @@ const { logoLink, openInStackBlitz } = Astro.props; - {openInStackBlitz && } + {openInStackBlitz && } diff --git a/packages/cli/tests/__snapshots__/create-tutorial.test.ts.snap b/packages/cli/tests/__snapshots__/create-tutorial.test.ts.snap index 381191655..67e94228b 100644 --- a/packages/cli/tests/__snapshots__/create-tutorial.test.ts.snap +++ b/packages/cli/tests/__snapshots__/create-tutorial.test.ts.snap @@ -209,7 +209,7 @@ exports[`create and eject a project 1`] = ` "src/components/MobileContentToggle.astro", "src/components/NavCard.astro", "src/components/NavWrapper.tsx", - "src/components/OpenInStackblitzLink.astro", + "src/components/OpenInStackblitzLink.tsx", "src/components/PageLoadingIndicator.astro", "src/components/ResizablePanel.astro", "src/components/ThemeSwitch.tsx",