import React from "react"; import { observer } from "mobx-react-lite"; import { SceneBuilderStore } from "./scene_builder_store"; import { useStore } from "../../../core/helper/use_store"; import { useParams } from "react-router-dom"; import { Popover } from "antd"; import { CoreButton } from "../../../core/ui/button/button"; import { Icon } from "../../../core/ui/icons/icons"; import { MainPage } from "../../../core/ui/pages/main_page"; import { CoreText, CoreTextType } from "../../../core/ui/text/text"; import { SceneMode } from "../../scene_manager/model/scene_view"; import { sceneManagerForms } from "./forms/scene_manager_forms"; export const SceneBuilderScreenPath = "/scene/builder/"; export const SceneBuilderScreen = observer(() => { const store = useStore(SceneBuilderStore); const canvasRef = React.useRef(null); const id = useParams().id as string; store.initParam(id); React.useEffect(() => { 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.sceneHelperInstruments.map((el, i) => (
el.onClick()} style={{ marginTop: 4, width: 50, height: 50, backgroundColor: el.isSelected ? "rgba(160, 132, 255, 1)" : "rgba(99, 81, 159, 1)", border: "1px solid", borderRadius: 5, }} >
))} {store.isVisibleSaveButton ? ( <>
store.sceneSave()} style={{ marginTop: 4, width: 50, height: 50, backgroundColor: "rgba(99, 81, 159, 1)", border: "1px solid", borderRadius: 5, }} >
) : null}
{store.sceneItems.map((el, index) => (
store.selectSceneItems(el.name, index, !el.isSelected, el.icon)} >
store.deleteSceneItem(el)} style={{ marginRight: 10 }} />
))}
{sceneManagerForms(store.activeFormDependency ?? {}, store).map((el, i) => el.name.isEqualR(store.activeFormType ?? "").fold( () => {el.component}, () => ) )}
} bodyChildren={ <> <> } /> ); });