dify/web/app/components/workflow/edge-contextmenu.tsx
Stephen Zhou b9fde89781
refactor(web): migrate i18n to selector optimize mode (#38657)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-10 09:35:31 +00:00

45 lines
1.2 KiB
TypeScript

import {
ContextMenuContent,
ContextMenuItem,
} from '@langgenius/dify-ui/context-menu'
import { useTranslation } from 'react-i18next'
import { useEdges } from 'reactflow'
import { useEdgesInteractions } from './hooks'
import { ShortcutKbd } from './shortcuts/shortcut-kbd'
import { useStore } from './store'
export function EdgeContextmenu({
onClose,
}: {
onClose: () => void
}) {
const { t } = useTranslation()
const contextMenuTarget = useStore(s => s.contextMenuTarget)
const edgeId = contextMenuTarget?.type === 'edge' ? contextMenuTarget.edgeId : undefined
const { handleEdgeDeleteById } = useEdgesInteractions()
const edges = useEdges()
const currentEdgeExists = !edgeId || edges.some(edge => edge.id === edgeId)
if (!edgeId || !currentEdgeExists)
return null
return (
<ContextMenuContent
popupClassName="rounded-lg"
sideOffset={4}
>
<ContextMenuItem
variant="destructive"
className="justify-between gap-4 px-3"
onClick={() => {
handleEdgeDeleteById(edgeId)
onClose()
}}
>
<span>{t($ => $['operation.delete'], { ns: 'common' })}</span>
<ShortcutKbd shortcut="workflow.delete" />
</ContextMenuItem>
</ContextMenuContent>
)
}