diff --git a/apps/ai-game-creator-shell/src/view/ui-editor/components/preview/PreviewWorkspace.tsx b/apps/ai-game-creator-shell/src/view/ui-editor/components/preview/PreviewWorkspace.tsx index 91c0c24a1..5527e7687 100644 --- a/apps/ai-game-creator-shell/src/view/ui-editor/components/preview/PreviewWorkspace.tsx +++ b/apps/ai-game-creator-shell/src/view/ui-editor/components/preview/PreviewWorkspace.tsx @@ -98,6 +98,7 @@ export function PreviewWorkspace({ >(new Map()); const [contextMenu, setContextMenu] = useState<{ nodeId: NodeId; + treeId: string; x: number; y: number; isPageRoot: boolean; @@ -480,9 +481,12 @@ export function PreviewWorkspace({ event: ReactMouseEvent, node: NonNullable['root'], isPageRoot: boolean, + treeId?: string, ) => { + if (!treeId) return; setContextMenu({ nodeId: node.id, + treeId, x: event.clientX, y: event.clientY, isPageRoot, @@ -566,6 +570,7 @@ export function PreviewWorkspace({ ) : null} setContextMenu(null)} - onInsertChild={(nodeId) => canvas.insertNode(nodeId)} - onInsertSibling={(nodeId) => canvas.insertNodeAfter(nodeId)} - onDelete={(nodeId) => canvas.deleteNode(nodeId)} + onInsertChild={(nodeId) => + canvas.insertNode(nodeId, contextMenu.treeId) + } + onInsertSibling={(nodeId) => + canvas.insertNodeAfter(nodeId, contextMenu.treeId) + } + onDelete={(nodeId) => + canvas.deleteNode(nodeId, contextMenu.treeId) + } /> ) : null}
; @@ -41,6 +42,7 @@ type UiTreeRendererProps = { event: ReactMouseEvent, node: UiNode, isPageRoot: boolean, + treeId?: string, ) => void; onNodePointerDown: NodePointerDown; onNodePointerMove: (event: ReactPointerEvent) => void; @@ -81,6 +83,7 @@ const EMPTY_PREVIEW_TRANSFORMS: ReadonlyMap< function RenderNode({ node, + treeId, isRoot, parentContainer, showFrame, @@ -173,7 +176,7 @@ function RenderNode({ event.preventDefault(); event.stopPropagation(); onSelectNode(node.id); - onNodeContextMenu(event, node, Boolean(isRoot)); + onNodeContextMenu(event, node, Boolean(isRoot), treeId); }} onPointerDown={ receivesPointerGesture @@ -206,6 +209,7 @@ function RenderNode({