import React, { useState } from 'react' import { RiAddLine, RiArrowDownSLine, } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { useRouter } from 'next/navigation' import { ApiConnectionMod } from '@/app/components/base/icons/src/vender/solid/development' type ApiItem = { value: string name: string url: string } type ExternalApiSelectProps = { items: ApiItem[] defaultValue?: string onSelect: (item: ApiItem) => void } const ExternalApiSelect: React.FC = ({ items, defaultValue, onSelect }) => { const { t } = useTranslation() const [isOpen, setIsOpen] = useState(false) const router = useRouter() const [selectedItem, setSelectedItem] = useState( items.find(item => item.value === defaultValue) || null, ) const handleAddNewAPI = () => { router.push('/datasets?openExternalApiPanel=true') } const handleSelect = (item: ApiItem) => { setSelectedItem(item) onSelect(item) setIsOpen(false) } return (
setIsOpen(!isOpen)} > {selectedItem ? (
{selectedItem.name}
) : ( {t('dataset.selectExternalKnowledgeAPI.placeholder')} )}
{isOpen && (
{items.map(item => (
handleSelect(item)} >
{item.name} {item.url}
))}
{t('dataset.createNewExternalAPI')}
)}
) } export default ExternalApiSelect