Skip to content

Commit 52534ff

Browse files
committed
ack PR comments
1 parent 6a3fd28 commit 52534ff

File tree

2 files changed

+26
-52
lines changed

2 files changed

+26
-52
lines changed

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/context-menu/block-context-menu.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,7 @@ export function BlockContextMenu({
3939
const isSubflow =
4040
isSingleBlock && (selectedBlocks[0]?.type === 'loop' || selectedBlocks[0]?.type === 'parallel')
4141

42-
const canRemoveFromSubflow =
43-
showRemoveFromSubflow &&
44-
!hasStarterBlock &&
45-
selectedBlocks.some(
46-
(b) => b.parentId && (b.parentType === 'loop' || b.parentType === 'parallel')
47-
)
42+
const canRemoveFromSubflow = showRemoveFromSubflow && !hasStarterBlock
4843

4944
const getToggleEnabledLabel = () => {
5045
if (allEnabled) return 'Disable'

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/hooks/use-canvas-context-menu.ts

Lines changed: 25 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,13 @@ export function useCanvasContextMenu({ blocks, getNodes }: UseCanvasContextMenuP
2828

2929
const menuRef = useRef<HTMLDivElement>(null)
3030

31-
/**
32-
* Handle right-click on a node (block)
33-
*/
34-
const handleNodeContextMenu = useCallback(
35-
(event: React.MouseEvent, node: Node) => {
36-
event.preventDefault()
37-
event.stopPropagation()
38-
39-
const x = event.clientX
40-
const y = event.clientY
41-
42-
const selectedNodes = getNodes().filter((n) => n.selected)
43-
44-
const nodesToUse = selectedNodes.some((n) => n.id === node.id) ? selectedNodes : [node]
45-
46-
const blockInfos: ContextMenuBlockInfo[] = nodesToUse.map((n) => {
31+
/** Converts nodes to block info for context menu */
32+
const nodesToBlockInfos = useCallback(
33+
(nodes: Node[]): ContextMenuBlockInfo[] =>
34+
nodes.map((n) => {
4735
const block = blocks[n.id]
4836
const parentId = block?.data?.parentId
4937
const parentType = parentId ? blocks[parentId]?.type : undefined
50-
5138
return {
5239
id: n.id,
5340
type: block?.type || '',
@@ -56,13 +43,26 @@ export function useCanvasContextMenu({ blocks, getNodes }: UseCanvasContextMenuP
5643
parentId,
5744
parentType,
5845
}
59-
})
46+
}),
47+
[blocks]
48+
)
6049

61-
setPosition({ x, y })
62-
setSelectedBlocks(blockInfos)
50+
/**
51+
* Handle right-click on a node (block)
52+
*/
53+
const handleNodeContextMenu = useCallback(
54+
(event: React.MouseEvent, node: Node) => {
55+
event.preventDefault()
56+
event.stopPropagation()
57+
58+
const selectedNodes = getNodes().filter((n) => n.selected)
59+
const nodesToUse = selectedNodes.some((n) => n.id === node.id) ? selectedNodes : [node]
60+
61+
setPosition({ x: event.clientX, y: event.clientY })
62+
setSelectedBlocks(nodesToBlockInfos(nodesToUse))
6363
setActiveMenu('block')
6464
},
65-
[blocks, getNodes]
65+
[getNodes, nodesToBlockInfos]
6666
)
6767

6868
/**
@@ -72,10 +72,7 @@ export function useCanvasContextMenu({ blocks, getNodes }: UseCanvasContextMenuP
7272
event.preventDefault()
7373
event.stopPropagation()
7474

75-
const x = event.clientX
76-
const y = event.clientY
77-
78-
setPosition({ x, y })
75+
setPosition({ x: event.clientX, y: event.clientY })
7976
setSelectedBlocks([])
8077
setActiveMenu('pane')
8178
}, [])
@@ -88,31 +85,13 @@ export function useCanvasContextMenu({ blocks, getNodes }: UseCanvasContextMenuP
8885
event.preventDefault()
8986
event.stopPropagation()
9087

91-
const x = event.clientX
92-
const y = event.clientY
93-
9488
const selectedNodes = getNodes().filter((n) => n.selected)
9589

96-
const blockInfos: ContextMenuBlockInfo[] = selectedNodes.map((n) => {
97-
const block = blocks[n.id]
98-
const parentId = block?.data?.parentId
99-
const parentType = parentId ? blocks[parentId]?.type : undefined
100-
101-
return {
102-
id: n.id,
103-
type: block?.type || '',
104-
enabled: block?.enabled ?? true,
105-
horizontalHandles: block?.horizontalHandles ?? false,
106-
parentId,
107-
parentType,
108-
}
109-
})
110-
111-
setPosition({ x, y })
112-
setSelectedBlocks(blockInfos)
90+
setPosition({ x: event.clientX, y: event.clientY })
91+
setSelectedBlocks(nodesToBlockInfos(selectedNodes))
11392
setActiveMenu('block')
11493
},
115-
[blocks, getNodes]
94+
[getNodes, nodesToBlockInfos]
11695
)
11796

11897
/**

0 commit comments

Comments
 (0)