Fix field delete
This commit is contained in:
parent
2395a334bb
commit
f44b5fd388
@ -207,6 +207,27 @@ export default function ControlPanel({
|
|||||||
if (a.component === "field") {
|
if (a.component === "field") {
|
||||||
updateField(a.tid, a.fid, a.undo);
|
updateField(a.tid, a.fid, a.undo);
|
||||||
} else if (a.component === "field_delete") {
|
} else if (a.component === "field_delete") {
|
||||||
|
setRelationships((prev) => {
|
||||||
|
return prev.map((e) => {
|
||||||
|
if (e.startTableId === a.tid && e.startFieldId > a.data.id) {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
startFieldId: e.startFieldId + 1,
|
||||||
|
startX: tables[a.tid].x + 15,
|
||||||
|
startY: tables[a.tid].y + (e.startFieldId + 1) * 36 + 50 + 19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (e.endTableId === a.tid && e.endFieldId > a.data.id) {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
endFieldId: e.endFieldId + 1,
|
||||||
|
endX: tables[a.tid].x + 15,
|
||||||
|
endY: tables[a.tid].y + (e.endFieldId + 1) * 36 + 50 + 19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return e;
|
||||||
|
});
|
||||||
|
});
|
||||||
setTables((prev) =>
|
setTables((prev) =>
|
||||||
prev.map((t) => {
|
prev.map((t) => {
|
||||||
if (t.id === a.tid) {
|
if (t.id === a.tid) {
|
||||||
@ -358,6 +379,27 @@ export default function ControlPanel({
|
|||||||
if (a.component === "field") {
|
if (a.component === "field") {
|
||||||
updateField(a.tid, a.fid, a.redo);
|
updateField(a.tid, a.fid, a.redo);
|
||||||
} else if (a.component === "field_delete") {
|
} else if (a.component === "field_delete") {
|
||||||
|
setRelationships((prev) => {
|
||||||
|
return prev.map((e) => {
|
||||||
|
if (e.startTableId === a.tid && e.startFieldId > a.data.id) {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
startFieldId: e.startFieldId - 1,
|
||||||
|
startX: tables[a.tid].x + 15,
|
||||||
|
startY: tables[a.tid].y + (e.startFieldId - 1) * 36 + 50 + 19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (e.endTableId === a.tid && e.endFieldId > a.data.id) {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
endFieldId: e.endFieldId - 1,
|
||||||
|
endX: tables[a.tid].x + 15,
|
||||||
|
endY: tables[a.tid].y + (e.endFieldId - 1) * 36 + 50 + 19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return e;
|
||||||
|
});
|
||||||
|
});
|
||||||
updateTable(a.tid, {
|
updateTable(a.tid, {
|
||||||
fields: tables[a.tid].fields
|
fields: tables[a.tid].fields
|
||||||
.filter((field) => field.id !== a.data.id)
|
.filter((field) => field.id !== a.data.id)
|
||||||
@ -1391,7 +1433,7 @@ export default function ControlPanel({
|
|||||||
case MODAL.OPEN:
|
case MODAL.OPEN:
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{diagrams.length === 0 ? (
|
{diagrams?.length === 0 ? (
|
||||||
<Banner
|
<Banner
|
||||||
fullMode={false}
|
fullMode={false}
|
||||||
type="info"
|
type="info"
|
||||||
|
@ -671,6 +671,41 @@ export default function TableOverview() {
|
|||||||
)
|
)
|
||||||
.map((e, i) => ({ ...e, id: i }))
|
.map((e, i) => ({ ...e, id: i }))
|
||||||
);
|
);
|
||||||
|
setRelationships((prev) => {
|
||||||
|
return prev.map((e) => {
|
||||||
|
if (
|
||||||
|
e.startTableId === t.id &&
|
||||||
|
e.startFieldId > f.id
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
startFieldId: e.startFieldId - 1,
|
||||||
|
startX: t.x + 15,
|
||||||
|
startY:
|
||||||
|
t.y +
|
||||||
|
(e.startFieldId - 1) * 36 +
|
||||||
|
50 +
|
||||||
|
19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
e.endTableId === t.id &&
|
||||||
|
e.endFieldId > f.id
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
endFieldId: e.endFieldId - 1,
|
||||||
|
endX: t.x + 15,
|
||||||
|
endY:
|
||||||
|
t.y +
|
||||||
|
(e.endFieldId - 1) * 36 +
|
||||||
|
50 +
|
||||||
|
19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return e;
|
||||||
|
});
|
||||||
|
});
|
||||||
updateTable(i, {
|
updateTable(i, {
|
||||||
fields: t.fields
|
fields: t.fields
|
||||||
.filter((field) => field.id !== j)
|
.filter((field) => field.id !== j)
|
||||||
|
@ -803,23 +803,45 @@ export default function Table(props) {
|
|||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
setRedoStack([]);
|
setRedoStack([]);
|
||||||
setRelationships((prev) =>
|
setRelationships((prev) => {
|
||||||
prev
|
return prev.map((e) => {
|
||||||
.filter(
|
if (
|
||||||
(e) =>
|
e.startTableId === props.tableData.id &&
|
||||||
!(
|
e.startFieldId > f.id
|
||||||
(e.startTableId === props.tableData.id &&
|
) {
|
||||||
e.startFieldId === j) ||
|
return {
|
||||||
(e.endTableId === props.tableData.id &&
|
...e,
|
||||||
e.endFieldId === j)
|
startFieldId: e.startFieldId - 1,
|
||||||
)
|
startX: props.tableData.x + 15,
|
||||||
)
|
startY:
|
||||||
.map((e, i) => ({ ...e, id: i }))
|
props.tableData.y +
|
||||||
);
|
(e.startFieldId - 1) * 36 +
|
||||||
|
50 +
|
||||||
|
19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
e.endTableId === props.tableData.id &&
|
||||||
|
e.endFieldId > f.id
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
endFieldId: e.endFieldId - 1,
|
||||||
|
endX: props.tableData.x + 15,
|
||||||
|
endY:
|
||||||
|
props.tableData.y +
|
||||||
|
(e.endFieldId - 1) * 36 +
|
||||||
|
50 +
|
||||||
|
19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return e;
|
||||||
|
});
|
||||||
|
});
|
||||||
updateTable(props.tableData.id, {
|
updateTable(props.tableData.id, {
|
||||||
fields: props.tableData.fields
|
fields: props.tableData.fields
|
||||||
.filter((field) => field.id !== j)
|
.filter((field) => field.id !== j)
|
||||||
.map((e, i) => ({ ...e, id: i })),
|
.map((e, k) => ({ ...e, id: k })),
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -1285,10 +1307,44 @@ export default function Table(props) {
|
|||||||
)
|
)
|
||||||
.map((e, i) => ({ ...e, id: i }))
|
.map((e, i) => ({ ...e, id: i }))
|
||||||
);
|
);
|
||||||
|
setRelationships((prev) => {
|
||||||
|
return prev.map((e) => {
|
||||||
|
if (
|
||||||
|
e.startTableId === props.tableData.id &&
|
||||||
|
e.startFieldId > fieldData.id
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
startFieldId: e.startFieldId - 1,
|
||||||
|
startX: props.tableData.x + 15,
|
||||||
|
startY:
|
||||||
|
props.tableData.y +
|
||||||
|
(e.startFieldId - 1) * 36 +
|
||||||
|
50 +
|
||||||
|
19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
e.endTableId === props.tableData.id &&
|
||||||
|
e.endFieldId > fieldData.id
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
endFieldId: e.endFieldId - 1,
|
||||||
|
endX: props.tableData.x + 15,
|
||||||
|
endY:
|
||||||
|
props.tableData.y + (e.endFieldId - 1) * 36 + 50 + 19,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return e;
|
||||||
|
});
|
||||||
|
});
|
||||||
updateTable(props.tableData.id, {
|
updateTable(props.tableData.id, {
|
||||||
fields: props.tableData.fields
|
fields: props.tableData.fields
|
||||||
.filter((e) => e.id !== fieldData.id)
|
.filter((e) => e.id !== fieldData.id)
|
||||||
.map((t, i) => ({ ...t, id: i })),
|
.map((t, i) => {
|
||||||
|
return { ...t, id: i };
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
onCancel={() => {}}
|
onCancel={() => {}}
|
||||||
|
Loading…
Reference in New Issue
Block a user