Skip to content

Commit 3988b8d

Browse files
committed
Recover relationships after undoing table delete
1 parent 679f6b0 commit 3988b8d

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/components/EditorHeader/ControlPanel.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,8 @@ export default function ControlPanel({
146146
}
147147
} else if (a.action === Action.DELETE) {
148148
if (a.element === ObjectType.TABLE) {
149-
addTable(a.data, false);
149+
a.data.relationship.forEach((x) => addRelationship(x, false));
150+
addTable(a.data.table, false);
150151
} else if (a.element === ObjectType.RELATIONSHIP) {
151152
addRelationship(a.data, false);
152153
} else if (a.element === ObjectType.NOTE) {
@@ -337,7 +338,7 @@ export default function ControlPanel({
337338
}
338339
} else if (a.action === Action.DELETE) {
339340
if (a.element === ObjectType.TABLE) {
340-
deleteTable(a.data.id, false);
341+
deleteTable(a.data.table.id, false);
341342
} else if (a.element === ObjectType.RELATIONSHIP) {
342343
deleteRelationship(a.data.id, false);
343344
} else if (a.element === ObjectType.NOTE) {

src/context/TablesContext.jsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,18 @@ export default function TablesContextProvider({ children }) {
6868
const deleteTable = (id, addToHistory = true) => {
6969
if (addToHistory) {
7070
Toast.success(t("table_deleted"));
71+
const rels = relationships.reduce((acc, r) => {
72+
if (r.startTableId === id || r.endTableId === id) {
73+
acc.push(r);
74+
}
75+
return acc;
76+
}, []);
7177
setUndoStack((prev) => [
7278
...prev,
7379
{
7480
action: Action.DELETE,
7581
element: ObjectType.TABLE,
76-
data: tables[id],
82+
data: { table: tables[id], relationship: rels },
7783
message: t("delete_table", { tableName: tables[id] }),
7884
},
7985
]);

0 commit comments

Comments
 (0)