From 04069e080a721b07aa99a9e514c36584314144de Mon Sep 17 00:00:00 2001 From: findthelorax Date: Thu, 16 Apr 2026 10:10:30 -0400 Subject: [PATCH] feature: double-click on a node to open an edit modal --- frontend/src/App.tsx | 1 + frontend/src/components/canvas/CanvasContainer.tsx | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a36b9d0..c3ff8df 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -400,6 +400,7 @@ export default function App() { handleEditNode(node.id)} onNodeDragStart={snapshotHistory} onOpenPending={(deviceId) => { setHighlightPendingId(undefined) diff --git a/frontend/src/components/canvas/CanvasContainer.tsx b/frontend/src/components/canvas/CanvasContainer.tsx index 3847dc6..cee03e8 100644 --- a/frontend/src/components/canvas/CanvasContainer.tsx +++ b/frontend/src/components/canvas/CanvasContainer.tsx @@ -25,11 +25,12 @@ import type { NodeData, EdgeData } from '@/types' interface CanvasContainerProps { onConnect?: (connection: Connection) => void onEdgeDoubleClick?: (edge: Edge) => void + onNodeDoubleClick?: (node: Node) => void onNodeDragStart?: () => void onOpenPending?: (deviceId: string) => void } -export function CanvasContainer({ onConnect: onConnectProp, onEdgeDoubleClick, onNodeDragStart, onOpenPending }: CanvasContainerProps) { +export function CanvasContainer({ onConnect: onConnectProp, onEdgeDoubleClick, onNodeDoubleClick, onNodeDragStart, onOpenPending }: CanvasContainerProps) { const [lassoMode, setLassoMode] = useState(true) const { nodes, edges, @@ -68,6 +69,10 @@ export function CanvasContainer({ onConnect: onConnectProp, onEdgeDoubleClick, o onEdgeDoubleClick?.(edge) }, [onEdgeDoubleClick]) + const handleNodeDoubleClick = useCallback((_: React.MouseEvent, node: Node) => { + onNodeDoubleClick?.(node) + }, [onNodeDoubleClick]) + return (