import { Button } from '@langgenius/dify-ui/button' import { cn } from '@langgenius/dify-ui/cn' import { RiAddLine, RiBookOpenLine, RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import ActionButton from '@/app/components/base/action-button' import Loading from '@/app/components/base/loading' import { useExternalKnowledgeApi } from '@/context/external-knowledge-api-context' import { useDocLink } from '@/context/i18n' import { useModalContext } from '@/context/modal-context' import ExternalKnowledgeAPICard from '../external-knowledge-api-card' type ExternalAPIPanelProps = { canManageExternalKnowledgeApi: boolean onClose: () => void } const ExternalAPIPanel: React.FC = ({ canManageExternalKnowledgeApi, onClose, }) => { const { t } = useTranslation() const docLink = useDocLink() const { setShowExternalKnowledgeAPIModal } = useModalContext() const { externalKnowledgeApiList, mutateExternalKnowledgeApis, isLoading } = useExternalKnowledgeApi() const handleOpenExternalAPIModal = () => { if (!canManageExternalKnowledgeApi) return setShowExternalKnowledgeAPIModal({ payload: { name: '', settings: { endpoint: '', api_key: '' } }, datasetBindings: [], onSaveCallback: () => { mutateExternalKnowledgeApis() }, onCancelCallback: () => { mutateExternalKnowledgeApis() }, isEditMode: false, }) } return (
{t(($) => $.externalAPIPanelTitle, { ns: 'dataset' })}
{t(($) => $.externalAPIPanelDescription, { ns: 'dataset' })}
{t(($) => $.externalAPIPanelDocumentation, { ns: 'dataset' })}
onClose()}>
{canManageExternalKnowledgeApi && (
)}
{isLoading ? ( ) : ( externalKnowledgeApiList.map((api) => ( )) )}
) } export default ExternalAPIPanel