import { type SceneStateEvent, SceneState } from "@storyteller/studio"; import { FormEvent, useState } from "react"; import StudioViewer from "./studio-viewer"; import StudioCanvasProvider from "./studio-canvas-provider"; import style from "./app.module.scss"; const OBJECTS = [ { id: "bookcase", label: "Bookcase", }, { id: "couch", label: "Couch", }, { id: "desk-chair", label: "Desk Chair", }, { id: "desk", label: "Desk", }, { id: "file-cabinet", label: "File Cabinet", }, { id: "potted-plant-1", label: "Potted Plant #1", }, { id: "potted-plant-3", label: "Potted Plant #2", }, { id: "room", label: "Room (empty)", }, { id: "sample-room", label: "Room (populated)", }, { id: "rug", label: "Rug", }, { id: "wicker-basket", label: "Wicker Basket", }, ]; const SKYBOXES = [ { id: "gum_trees_4k", label: "Gum Trees", }, { id: "kloofendal_28d_misty_4k", label: "Kloofendal Misty", }, { id: "meadow_4k", label: "Meadow", }, { id: "promenade_de_vidy_4k", label: "Promenade de Vidy", }, { id: "scythian_tombs_4k", label: "Scythian Tombs", }, { id: "test_scene", label: "Desert Sunrise", }, ]; export default () => { const [objectId, setObjectId] = useState(null); const [skyboxId, setSkyboxId] = useState("meadow_4k"); const [modalOpen, setModalOpen] = useState(false); const [loading, setLoading] = useState(true); const onSkyboxSelect = (event: FormEvent) => { setSkyboxId((event.target as HTMLSelectElement).value) } const onSceneStateChange = ({ detail: state }: SceneStateEvent) => { setLoading(state !== SceneState.Active); } return (
{OBJECTS.map(({ id, label }) => (
{ if (id !== objectId) { setLoading(true); setObjectId(id); } setModalOpen(true); }} >

{label}

))}
{modalOpen && !!objectId && <>
setModalOpen(false)} />

Loading...

} ); }