import type { NodeActionsMenuProps } from './types'
import {
ContextMenuGroup,
ContextMenuItem,
ContextMenuLinkItem,
ContextMenuSeparator,
} from '@langgenius/dify-ui/context-menu'
import { useTranslation } from 'react-i18next'
import { ChangeBlockMenuTrigger } from './change-block-menu-trigger'
import {
NODE_ACTIONS_MENU_DELETE_ITEM_CLASS_NAME,
NODE_ACTIONS_MENU_ITEM_WITH_SHORTCUT_CLASS_NAME,
NodeActionsMenuAbout,
NodeActionsMenuItemContent,
} from './shared'
import { useNodeActionsMenuModel } from './use-node-actions-menu-model'
export function NodeActionsContextMenuContent(props: NodeActionsMenuProps) {
const { t } = useTranslation()
const model = useNodeActionsMenuModel(props)
const hasRunGroup = model.canRun || model.canChangeBlock
const hasEditGroup = !model.nodesReadOnly && !model.isSingleton
const hasDeleteGroup = !model.nodesReadOnly && !model.isUndeletable
return (
<>
{hasRunGroup && (
{model.canRun && (
{t('panel.runThisStep', { ns: 'workflow' })}
)}
{model.canChangeBlock && (
)}
)}
{hasRunGroup && (hasEditGroup || hasDeleteGroup || model.workflowAppHref || model.helpLinkUri) && }
{hasEditGroup && (
{t('common.copy', { ns: 'workflow' })}
{t('common.duplicate', { ns: 'workflow' })}
)}
{hasEditGroup && (hasDeleteGroup || model.workflowAppHref || model.helpLinkUri) && }
{hasDeleteGroup && (
{t('operation.delete', { ns: 'common' })}
)}
{hasDeleteGroup && (model.workflowAppHref || model.helpLinkUri) && }
{model.workflowAppHref && (
{t('panel.openWorkflow', { ns: 'workflow' })}
)}
{model.workflowAppHref && model.helpLinkUri && }
{model.helpLinkUri && (
{t('panel.helpLink', { ns: 'workflow' })}
)}
>
)
}