-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathstep-group-node-context-menu.tsx
71 lines (68 loc) · 2.34 KB
/
step-group-node-context-menu.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import { DropdownMenu, Icon, Text } from '@harnessio/ui/components'
import { usePipelineStudioNodeContext } from '@harnessio/ui/views'
export const StepGroupNodeContextMenu = () => {
const { contextMenuData, onAddIntention, hideContextMenu, onEditIntention, onDeleteIntention } =
usePipelineStudioNodeContext()
if (!contextMenuData) return null
return (
<DropdownMenu.Root
open={!!contextMenuData}
onOpenChange={open => {
if (open === false) {
hideContextMenu()
}
}}
>
<DropdownMenu.Content
align="end"
className="absolute"
style={{ left: `${contextMenuData?.position.x}px`, top: `${contextMenuData?.position.y}px` }}
>
<DropdownMenu.Item
key="edit"
className="flex items-center gap-1.5"
onSelect={() => {
onEditIntention(contextMenuData.nodeData)
}}
>
<Icon name="edit-pen" size={12} className="text-tertiary-background" />
<Text wrap="nowrap">Edit</Text>
</DropdownMenu.Item>
<DropdownMenu.Separator />
<DropdownMenu.Item
key="add-before"
className="flex items-center gap-1.5"
onSelect={() => {
onAddIntention(contextMenuData.nodeData, 'before')
}}
>
<Icon name="plus" size={12} className="text-tertiary-background" />
<Text wrap="nowrap">Add Step/Group before</Text>
</DropdownMenu.Item>
<DropdownMenu.Item
key="add-after"
className="flex items-center gap-1.5"
onSelect={() => {
onAddIntention(contextMenuData.nodeData, 'after')
}}
>
<Icon name="plus" size={12} className="text-tertiary-background" />
<Text wrap="nowrap">Add Step/Group after</Text>
</DropdownMenu.Item>
<DropdownMenu.Separator />
{/* <RevealDropdownMenuItem /> */}
{/* <DropdownMenu.Separator /> */}
<DropdownMenu.Item
key="delete"
className="flex items-center gap-1.5"
onSelect={() => {
onDeleteIntention(contextMenuData.nodeData)
}}
>
<Icon name="trash" size={12} className="text-primary" />
<Text wrap="nowrap">Delete</Text>
</DropdownMenu.Item>
</DropdownMenu.Content>
</DropdownMenu.Root>
)
}