Update relationships that come after deleted tableId

This commit is contained in:
1ilit 2024-02-29 20:48:49 +02:00
parent 96e2daad6d
commit 113e0f3593

View File

@ -297,14 +297,25 @@ export default function Editor() {
]); ]);
setRedoStack([]); setRedoStack([]);
} }
setTables((prev) => setRelationships((prevR) => {
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i })) return prevR
); .filter((e) => !(e.startTableId === id || e.endTableId === id))
setRelationships((prev) => .map((e, i) => {
prev const newR = { ...e };
.filter((e) => e.startTableId !== id && e.endTableId !== id)
.map((e, i) => ({ ...e, id: i })) if (e.startTableId > id) {
); newR.startTableId = e.startTableId - 1;
}
if (e.endTableId > id) {
newR.endTableId = e.endTableId - 1;
}
return { ...newR, id: i };
});
});
setTables((prev) => {
return prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i }));
});
if (id === selectedElement.id) { if (id === selectedElement.id) {
setSelectedElement({ setSelectedElement({
element: ObjectType.NONE, element: ObjectType.NONE,
@ -450,11 +461,11 @@ export default function Editor() {
useEffect(() => { useEffect(() => {
if ( if (
tables.length === 0 && tables?.length === 0 &&
areas.length === 0 && areas?.length === 0 &&
notes.length === 0 && notes?.length === 0 &&
types.length === 0 && types?.length === 0 &&
tasks.length === 0 tasks?.length === 0
) )
return; return;
@ -465,11 +476,11 @@ export default function Editor() {
undoStack, undoStack,
redoStack, redoStack,
settings.autosave, settings.autosave,
tables.length, tables?.length,
areas.length, areas?.length,
notes.length, notes?.length,
types.length, types?.length,
relationships.length, relationships?.length,
tasks?.length, tasks?.length,
settings.pan, settings.pan,
settings.zoom, settings.zoom,
@ -640,7 +651,7 @@ export default function Editor() {
setNotes(diagram.notes); setNotes(diagram.notes);
setSettings((prev) => ({ setSettings((prev) => ({
...prev, ...prev,
pan: {x: 0, y: 0}, pan: { x: 0, y: 0 },
zoom: 1, zoom: 1,
})); }));
setUndoStack([]); setUndoStack([]);