diff --git a/src/components/EditorHeader/ControlPanel.jsx b/src/components/EditorHeader/ControlPanel.jsx index 6fde750..ff500c6 100644 --- a/src/components/EditorHeader/ControlPanel.jsx +++ b/src/components/EditorHeader/ControlPanel.jsx @@ -105,6 +105,7 @@ export default function ControlPanel({ setRelationships, addRelationship, deleteRelationship, + updateRelationship, database, } = useDiagram(); const { enums, setEnums, deleteEnum, addEnum, updateEnum } = useEnums(); @@ -275,9 +276,7 @@ export default function ControlPanel({ updateTable(a.tid, a.undo); } } else if (a.element === ObjectType.RELATIONSHIP) { - setRelationships((prev) => - prev.map((e, idx) => (idx === a.rid ? { ...e, ...a.undo } : e)), - ); + updateRelationship(a.rid, a.undo); } else if (a.element === ObjectType.TYPE) { if (a.component === "field_add") { updateType(a.tid, { @@ -455,9 +454,7 @@ export default function ControlPanel({ updateTable(a.tid, a.redo, false); } } else if (a.element === ObjectType.RELATIONSHIP) { - setRelationships((prev) => - prev.map((e, idx) => (idx === a.rid ? { ...e, ...a.redo } : e)), - ); + updateRelationship(a.rid, a.redo); } else if (a.element === ObjectType.TYPE) { if (a.component === "field_add") { updateType(a.tid, { diff --git a/src/components/EditorSidePanel/RelationshipsTab/RelationshipInfo.jsx b/src/components/EditorSidePanel/RelationshipsTab/RelationshipInfo.jsx index ac37b8e..3cfc451 100644 --- a/src/components/EditorSidePanel/RelationshipsTab/RelationshipInfo.jsx +++ b/src/components/EditorSidePanel/RelationshipsTab/RelationshipInfo.jsx @@ -1,4 +1,12 @@ -import { Row, Col, Select, Button, Popover, Table } from "@douyinfe/semi-ui"; +import { + Row, + Col, + Select, + Button, + Popover, + Table, + Input, +} from "@douyinfe/semi-ui"; import { IconDeleteStroked, IconLoopTextStroked, @@ -13,6 +21,7 @@ import { import { useDiagram, useUndoRedo } from "../../../hooks"; import i18n from "../../../i18n/i18n"; import { useTranslation } from "react-i18next"; +import { useState } from "react"; const columns = [ { @@ -27,8 +36,10 @@ const columns = [ export default function RelationshipInfo({ data }) { const { setUndoStack, setRedoStack } = useUndoRedo(); - const { tables, setRelationships, deleteRelationship } = useDiagram(); + const { tables, setRelationships, deleteRelationship, updateRelationship } = + useDiagram(); const { t } = useTranslation(); + const [editField, setEditField] = useState({}); const swapKeys = () => { setUndoStack((prev) => [ @@ -121,6 +132,36 @@ export default function RelationshipInfo({ data }) { return ( <> +