drawDB/src/pages/editor.jsx

29 lines
921 B
React
Raw Normal View History

2023-09-19 20:47:01 +08:00
import { React, useState, useMemo } from "react";
2023-09-19 20:46:48 +08:00
import Header from "../components/header";
import Sidebar from "../components/sidebar";
import ControlPanel from "../components/control_panel";
2023-09-19 20:47:01 +08:00
import { DndProvider } from "react-dnd";
import { HTML5Backend } from "react-dnd-html5-backend";
2023-09-19 20:47:01 +08:00
import { dia } from "jointjs";
import DrawArea from "../components/draw_area";
import EditorPanel from "../components/editor_panel";
2023-09-19 20:46:46 +08:00
export default function Editor(props) {
const graph = useMemo(() => new dia.Graph(), []);
2023-09-19 20:46:56 +08:00
const [code, setCode] = useState("");
2023-09-19 20:46:46 +08:00
return (
<>
<Header name={props.name} />
2023-09-19 20:46:50 +08:00
<ControlPanel />
2023-09-19 20:46:48 +08:00
<div className="flex h-full">
<DndProvider backend={HTML5Backend}>
2023-09-19 20:47:01 +08:00
<EditorPanel graph={graph} code={code} setCode={setCode}/>
<DrawArea graph={graph} code={code} setCode={setCode}/>
</DndProvider>
2023-09-19 20:46:50 +08:00
<Sidebar />
2023-09-19 20:46:46 +08:00
</div>
</>
);
}