'use client'; import { lazy, Suspense, useState, useEffect } from 'react'; import { useAnimation } from './orchestration/AnimationProvider'; import { useMedia } from './core/useMedia'; import { selectScene } from './core/contracts.mjs'; import { Character } from './rive/Character'; import { AnimationBoundary } from './core/AnimationBoundary'; import type { RoomOverrides, RoomEffects } from './office/types'; const Office = lazy(() => import('./office/RoomScene').then(m => ({ default: m.RoomScene }))); const Desktop = lazy(() => import('./desktop/DesktopCharacter').then(m => ({ default: m.DesktopCharacter }))); export function AdaptiveScene({ travel = false, playbackRate = 1, objects, effects, drawerOpen = 0 }: { travel?: boolean; playbackRate?: number; objects?: RoomOverrides; effects?: Partial; drawerOpen?: number }) { const { state } = useAnimation(); const [mounted, setMounted] = useState(false); useEffect(() => setMounted(true), []); const narrow = useMedia('(max-width: 767px)', false); const scene = selectScene(state.scene, narrow ? 400 : 1200); const poster = ; if (!mounted) return
; return
{scene === 'mobile' ? : {scene === 'office' ? : }}
; }