import { useMemo } from 'react'; import type { Scene, StageMode } from '@/lib/types/stage'; import { SlideEditor as SlideRenderer } from '../slide-renderer/Editor'; import { QuizView } from '../scene-renderers/quiz-view'; import { InteractiveRenderer } from '../scene-renderers/interactive-renderer'; import { PBLRenderer } from '../scene-renderers/pbl-renderer'; interface SceneRendererProps { readonly scene: Scene; readonly mode: StageMode; } export function SceneRenderer({ scene, mode }: SceneRendererProps) { const renderer = useMemo(() => { switch (scene.type) { case 'slide': if (scene.content.type !== 'slide') return
Invalid slide content
; return ; case 'quiz': if (scene.content.type !== 'quiz') return
Invalid quiz content
; return ; case 'interactive': if (scene.content.type !== 'interactive') return
Invalid interactive content
; return ; case 'pbl': if (scene.content.type !== 'pbl') return
Invalid PBL content
; return ; default: return
Unknown scene type
; } }, [scene, mode]); return
{renderer}
; }