Refactor copy and paste to include dockData
This commit is contained in:
@@ -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();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user