From d88853daaf3c48b29798feed6b3e813e3fef1233 Mon Sep 17 00:00:00 2001 From: 1ilit <1ilit@proton.me> Date: Thu, 6 Nov 2025 20:38:57 +0400 Subject: [PATCH 1/2] Fix crash on copy --- src/components/EditorHeader/ControlPanel.jsx | 11 +++++++---- src/context/DiagramContext.jsx | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/components/EditorHeader/ControlPanel.jsx b/src/components/EditorHeader/ControlPanel.jsx index ed17920f..ff4dbea8 100644 --- a/src/components/EditorHeader/ControlPanel.jsx +++ b/src/components/EditorHeader/ControlPanel.jsx @@ -709,12 +709,15 @@ export default function ControlPanel({ return; } const v = new Validator(); + console.log(obj); if (v.validate(obj, tableSchema).valid) { addTable({ - ...obj, - x: obj.x + 20, - y: obj.y + 20, - id: nanoid(), + table: { + ...obj, + x: obj.x + 20, + y: obj.y + 20, + id: nanoid(), + }, }); } else if (v.validate(obj, areaSchema).valid) { addArea({ diff --git a/src/context/DiagramContext.jsx b/src/context/DiagramContext.jsx index da4c1b4b..bdb144b5 100644 --- a/src/context/DiagramContext.jsx +++ b/src/context/DiagramContext.jsx @@ -45,7 +45,7 @@ export default function DiagramContextProvider({ children }) { if (data) { setTables((prev) => { const temp = prev.slice(); - temp.splice(data.index, 0, data.table); + temp.splice(data.index || tables.length, 0, data.table); return temp; }); } else { From d4a33d8101fe0a62e761efb0e65fae2b9e2286ba Mon Sep 17 00:00:00 2001 From: 1ilit <1ilit@proton.me> Date: Thu, 6 Nov 2025 20:40:33 +0400 Subject: [PATCH 2/2] Fix duplicatte --- src/components/EditorHeader/ControlPanel.jsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/EditorHeader/ControlPanel.jsx b/src/components/EditorHeader/ControlPanel.jsx index ff4dbea8..cc1968d7 100644 --- a/src/components/EditorHeader/ControlPanel.jsx +++ b/src/components/EditorHeader/ControlPanel.jsx @@ -647,10 +647,12 @@ export default function ControlPanel({ case ObjectType.TABLE: { const copiedTable = tables.find((t) => t.id === selectedElement.id); addTable({ - ...copiedTable, - x: copiedTable.x + 20, - y: copiedTable.y + 20, - id: nanoid(), + table: { + ...copiedTable, + x: copiedTable.x + 20, + y: copiedTable.y + 20, + id: nanoid(), + }, }); break; }