import { RiDeleteBinLine, RiEditLine, RiFileDownloadLine, RiLock2Line } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { useDatasetDetailContextWithSelector } from '@/context/dataset-detail' import Divider from '../../base/divider' import MenuItem from './menu-item' type MenuProps = { showEdit?: boolean showDelete: boolean showExportPipeline?: boolean showAccessConfig?: boolean openRenameModal: () => void handleExportPipeline: () => void detectIsUsedByApp: () => void openAccessConfig?: () => void } const Menu = ({ showEdit = true, showDelete, showExportPipeline = true, showAccessConfig = false, openRenameModal, handleExportPipeline, detectIsUsedByApp, openAccessConfig, }: MenuProps) => { const { t } = useTranslation() const runtimeMode = useDatasetDetailContextWithSelector((state) => state.dataset?.runtime_mode) return (
{showEdit && ( $['operation.edit'], { ns: 'common' })} handleClick={openRenameModal} /> )} {showExportPipeline && runtimeMode === 'rag_pipeline' && ( $['operations.exportPipeline'], { ns: 'datasetPipeline' })} handleClick={handleExportPipeline} /> )} {showAccessConfig && ( $['settings.resourceAccess'], { ns: 'common' })} handleClick={openAccessConfig} /> )}
{showDelete && ( <>
$['operation.delete'], { ns: 'common' })} handleClick={detectIsUsedByApp} />
)}
) } export default React.memo(Menu)