import * as React from "react"; import { DrawersSceneManager, SceneMangerStore, StoreMode } from "./scene_manager_store"; import { observer } from "mobx-react-lite"; import { useNavigate, useParams } from "react-router-dom"; import { MainPage } from "../../../core/ui/pages/main_page"; import { CoreText, CoreTextType } from "../../../core/ui/text/text"; import { Drawer } from "antd"; import { CoreButton } from "../../../core/ui/button/button"; import { CoreInput } from "../../../core/ui/input/input"; import { DrawersDataset } from "../../dataset/dataset_store"; import { Popover } from "antd"; import { Icon } from "../../../core/ui/icons/icons"; import { sceneManagerForms } from "./forms/scene_manager_forms"; export const SceneManagerPath = "/scene/manager/"; export const SceneManger = observer(() => { const canvasRef = React.useRef(null); const [store] = React.useState(() => new SceneMangerStore()); const id = useParams().id as string; const navigate = useNavigate(); store.initParam(id); React.useEffect(() => { store.init(); store.loadScene(canvasRef.current!); document.body.style.overflow = "hidden"; return () => { document.body.style.overflow = "scroll"; store.dispose(); }; }, [id, store]); return (
{store.popoverItems.map((el, i) => (
el.fn()}>
))}
} >
{store.sceneItems.map((el, index) => (
))}
{sceneManagerForms(store.activeFormDependency ?? {}, store).map((el) => { if (el.name.isEqual(store.activeFormType ?? "")) { return <>{el.component}; } return <>; })}
} bodyChildren={ <> {store.storeMode.isEqual(StoreMode.sceneInstance) ? ( <> ) : (
store.editDrawer(DrawersSceneManager.NewScene, true)} type={CoreTextType.small} color="rgba(68, 142, 247, 1)" style={{ cursor: "pointer" }} />
{store.scenes.map((el, i) => (
{ navigate(`${SceneManagerPath}${el._id}`); }} textStyle={{ color: "black", textAlign: "center" }} style={{ marginRight: 10, backgroundColor: "white", width: 126 }} />
))}
store.editDrawer(DrawersSceneManager.NewScene, false)} open={store.drawers.find((el) => el.name === DrawersSceneManager.NewScene)?.status} >
store.updateForm({ name: text })} />
store.createNewScene()} />
store.editDrawer(DrawersDataset.NewDataset, false)} />
)} } /> ); });