import type { DataSourceCredential, } from './types' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@langgenius/dify-ui/dropdown-menu' import { memo, useCallback, useState, } from 'react' import { useTranslation } from 'react-i18next' import ActionButton from '@/app/components/base/action-button' import { CredentialTypeEnum } from '@/app/components/plugins/plugin-auth/types' type OperatorProps = { credentialItem: DataSourceCredential onAction: (action: string, credentialItem: DataSourceCredential) => void onRename?: () => void } const Operator = ({ credentialItem, onAction, onRename, }: OperatorProps) => { const { t } = useTranslation() const [open, setOpen] = useState(false) const { type, } = credentialItem const handleAction = useCallback((action: string) => { setOpen(false) queueMicrotask(() => { if (action === 'rename') { onRename?.() return } onAction(action, credentialItem) }) }, [credentialItem, onAction, onRename]) return ( }> handleAction('setDefault')}>
{t('auth.setDefault', { ns: 'plugin' })}
{type === CredentialTypeEnum.OAUTH2 && ( handleAction('rename')}>
{t('operation.rename', { ns: 'common' })}
)} {type === CredentialTypeEnum.API_KEY && ( handleAction('edit')}>
{t('operation.edit', { ns: 'common' })}
)} {type === CredentialTypeEnum.OAUTH2 && ( handleAction('change')}>
{t('dataSource.notion.changeAuthorizedPages', { ns: 'common' })}
)} handleAction('delete')}>
{t('operation.remove', { ns: 'common' })}
) } export default memo(Operator)