Refactor copy and paste to include dockData

This commit is contained in:
Ayobami
2025-07-02 18:25:38 +01:00
parent ab2f477b7f
commit 5843ffdc9b
+9 -3
View File
@@ -583,19 +583,25 @@ export const DockBuilder = () => {
}, [editorMemo]); }, [editorMemo]);
const CopySelection = () => { const CopySelection = () => {
// TODO: Copy selection
const activeObject = editorMemo.getActiveObject(); const activeObject = editorMemo.getActiveObject();
if (activeObject) { if (activeObject) {
activeObject.clone(function (cloned) { activeObject.clone(function (cloned) {
// Ensure dockData is copied
if (activeObject.dockData) {
cloned.dockData = { ...activeObject.dockData };
}
clipboard = cloned; clipboard = cloned;
}); });
} }
}; };
const PasteSelection = () => { const PasteSelection = () => {
// TODO: Paste selection
if (clipboard) { if (clipboard) {
clipboard.clone(function (clonedObj) { clipboard.clone(function (clonedObj) {
// Ensure dockData is copied
if (clipboard.dockData) {
clonedObj.dockData = { ...clipboard.dockData };
}
// Offset the pasted object so it's visible // Offset the pasted object so it's visible
clonedObj.set({ clonedObj.set({
left: (clonedObj.left || 0) + 20, left: (clonedObj.left || 0) + 20,
@@ -604,7 +610,7 @@ export const DockBuilder = () => {
}); });
editorMemo.add(clonedObj); editorMemo.add(clonedObj);
editorMemo.setActiveObject(clonedObj); editorMemo.setActiveObject(clonedObj);
editorMemo.renderAll(); editorMemo.requestRenderAll();
}); });
} }
}; };