Skip to content

Commit 3a58014

Browse files
committed
Update relationships when fields get reordered
1 parent b9a8cde commit 3a58014

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

src/components/EditorSidePanel/TablesTab/TableInfo.jsx

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import IndexDetails from "./IndexDetails";
1919

2020
export default function TableInfo({ data }) {
2121
const [indexActiveKey, setIndexActiveKey] = useState("");
22-
const { deleteTable, updateTable, updateField } = useTables();
22+
const { deleteTable, updateTable, updateField, setRelationships } =
23+
useTables();
2324
const { setUndoStack, setRedoStack } = useUndoRedo();
2425
const [editField, setEditField] = useState({});
2526
const draggingElementIndex = useRef();
@@ -79,6 +80,28 @@ export default function TableInfo({ data }) {
7980

8081
updateField(data.id, index, { ...b, id: index });
8182
updateField(data.id, j, { ...a, id: j });
83+
84+
setRelationships((prev) =>
85+
prev.map((e) => {
86+
if (e.startTableId === data.id) {
87+
if (e.startFieldId === index) {
88+
return { ...e, startFieldId: j };
89+
}
90+
if (e.startFieldId === j) {
91+
return { ...e, startFieldId: index };
92+
}
93+
}
94+
if (e.endTableId === data.id) {
95+
if (e.endFieldId === index) {
96+
return { ...e, endFieldId: j };
97+
}
98+
if (e.endFieldId === j) {
99+
return { ...e, endFieldId: index };
100+
}
101+
}
102+
return e;
103+
}),
104+
);
82105
}}
83106
onDragEnd={(e) => {
84107
e.preventDefault();

0 commit comments

Comments
 (0)