Files
dify/web/app/components/workflow/node-contextmenu.tsx

37 lines
1.1 KiB
TypeScript

import type { Node } from './types'
import {
ContextMenuContent,
} from '@langgenius/dify-ui/context-menu'
import useNodes from '@/app/components/workflow/store/workflow/use-nodes'
import { NodeActionsContextMenuContent } from './node-actions-menu/context-menu-content'
import { NODE_ACTIONS_MENU_WIDTH_CLASS_NAME } from './node-actions-menu/shared'
import { useStore } from './store'
export function NodeContextmenu({
onClose,
}: {
onClose: () => void
}) {
const nodes = useNodes()
const contextMenuTarget = useStore(s => s.contextMenuTarget)
const nodeId = contextMenuTarget?.type === 'node' ? contextMenuTarget.nodeId : undefined
const currentNode = nodeId ? nodes.find(node => node.id === nodeId) as Node | undefined : undefined
if (!nodeId || !currentNode)
return null
return (
<ContextMenuContent
popupClassName={NODE_ACTIONS_MENU_WIDTH_CLASS_NAME}
sideOffset={4}
>
<NodeActionsContextMenuContent
id={currentNode.id}
data={currentNode.data}
onClose={onClose}
showHelpLink
/>
</ContextMenuContent>
)
}