import { useStore } from '@nanostores/react'; import { Tab, TabsList, TabsPanel, TabsRoot } from '@/components/Tabs'; import type { Skin } from '@/stores/homePageDemos'; import { framework, skin } from '@/stores/homePageDemos'; import ClientCode from '../Code/ClientCode'; function generateHTMLCode(skin: Skin): string { const skinTag = `${skin}-skin`; return ` <${skinTag}> `; } function generateReactCode(skin: Skin): string { const skinComponent = skin === 'frosted' ? 'FrostedSkin' : 'MinimalSkin'; const skinImport = skin === 'frosted' ? 'frosted' : 'minimal'; return `// npm install @videojs/react-preview import { VideoProvider, ${skinComponent}, Video } from '@videojs/react-preview'; import '@videojs/react-preview/skins/${skinImport}.css'; export const VideoPlayer = () => { return ( <${skinComponent}> ); };`; } function generateJS(skin: Skin): string { return `// npm install @videojs/html-preview import '@videojs/html-preview/skins/${skin}';`; } export default function BaseDemo({ className }: { className?: string }) { const $framework = useStore(framework); const $skin = useStore(skin); if ($framework === 'html') { return ( HTML JavaScript ); } return ( React ); }