diff --git a/src/components/control_panel.jsx b/src/components/control_panel.jsx index 5672f21..9073f41 100644 --- a/src/components/control_panel.jsx +++ b/src/components/control_panel.jsx @@ -1,4 +1,4 @@ -import { React, useState } from "react"; +import { React, useContext, useState } from "react"; import { IconCaretdown, IconChevronRight, @@ -22,6 +22,7 @@ import { import { toPng, toJpeg, toSvg } from "html-to-image"; import { saveAs } from "file-saver"; import { enterFullscreen, exitFullscreen } from "../utils"; +import { LayoutContext } from "../pages/editor"; export default function ControlPanel(props) { const [visible, setVisible] = useState(false); @@ -30,6 +31,7 @@ export default function ControlPanel(props) { `diagram_${new Date().toISOString()}` ); const [extension, setExtension] = useState(""); + const {layout, setLayout} = useContext(LayoutContext); const menu = { File: { @@ -237,7 +239,7 @@ export default function ControlPanel(props) { return (
- {props.layout.header && header()} + {layout.header && header()}
{layoutDropdown()} @@ -341,10 +343,10 @@ export default function ControlPanel(props) {
) : (
) } onClick={() => - props.setLayout((prev) => ({ + setLayout((prev) => ({ ...prev, header: !prev.header, })) @@ -532,14 +534,14 @@ export default function ControlPanel(props) { ) : (
) } onClick={() => - props.setLayout((prev) => ({ + setLayout((prev) => ({ ...prev, tables: !prev.tables, })) @@ -549,14 +551,14 @@ export default function ControlPanel(props) {
) : (
) } onClick={() => - props.setLayout((prev) => ({ + setLayout((prev) => ({ ...prev, relationships: !prev.relationships, })) @@ -566,14 +568,14 @@ export default function ControlPanel(props) {
) : (
) } onClick={() => - props.setLayout((prev) => ({ + setLayout((prev) => ({ ...prev, issues: !prev.issues, })) @@ -583,14 +585,14 @@ export default function ControlPanel(props) {
) : (
) } onClick={() => - props.setLayout((prev) => ({ + setLayout((prev) => ({ ...prev, editor: !prev.editor, })) @@ -600,14 +602,14 @@ export default function ControlPanel(props) {
) : (
) } onClick={() => - props.setLayout((prev) => ({ + setLayout((prev) => ({ ...prev, shapes: !prev.shapes, })) @@ -620,14 +622,14 @@ export default function ControlPanel(props) { > ) : (
) } onClick={() => - props.setLayout((prev) => ({ + setLayout((prev) => ({ ...prev, sidebar: !prev.sidebar, })) @@ -638,14 +640,14 @@ export default function ControlPanel(props) { ) : (
) } onClick={() => - props.setLayout((prev) => ({ + setLayout((prev) => ({ ...prev, services: !prev.services, })) @@ -656,19 +658,19 @@ export default function ControlPanel(props) { ) : (
) } onClick={() => { - if (props.layout.fullscreen) { + if (layout.fullscreen) { exitFullscreen(); } else { enterFullscreen(); } - props.setLayout((prev) => ({ + setLayout((prev) => ({ ...prev, fullscreen: !prev.fullscreen, })); diff --git a/src/components/table.jsx b/src/components/table.jsx index 6ef6524..b39a228 100644 --- a/src/components/table.jsx +++ b/src/components/table.jsx @@ -1,4 +1,4 @@ -import { React, useState } from "react"; +import { React, useState, useContext } from "react"; // import { sqlDataTypes } from "../data/data"; import { IconEdit, IconPlus, IconMore, IconMinus } from "@douyinfe/semi-icons"; import { @@ -10,12 +10,15 @@ import { Popover, Tag, Button, + SideSheet, } from "@douyinfe/semi-ui"; +import { LayoutContext } from "../pages/editor"; export default function Table(props) { const [isHovered, setIsHovered] = useState(false); const [hoveredField, setHoveredField] = useState(-1); - // const [visible, setVisible] = useState(false); + const [visible, setVisible] = useState(false); + const {layout} = useContext(LayoutContext); // const [editFieldVisible, setEditFieldVisible] = useState(-1); // const [field, setField] = useState({ // name: "", @@ -73,6 +76,7 @@ export default function Table(props) { opacity: "0.7", marginRight: "6px", }} + onClick={() => setVisible(true)} >