import { cn } from '@langgenius/dify-ui/cn' import { Popover, PopoverPopup, PopoverPortal, PopoverPositioner, PopoverTrigger, } from '@langgenius/dify-ui/popover' import { useQuery } from '@tanstack/react-query' import { useQueryState } from 'nuqs' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { settingsQueryParamName, settingsQueryParser, } from '@/app/components/header/account-setting/query-params' import { consoleQuery } from '@/service/client' import { ApiBasedExtensionModal } from './modal' type ApiBasedExtensionSelectorProps = { value: string onChange: (value: string) => void } export function ApiBasedExtensionSelector({ value, onChange }: ApiBasedExtensionSelectorProps) { const { t } = useTranslation() const [open, setOpen] = useState(false) const [addModalOpen, setAddModalOpen] = useState(false) const [, setSettingsDestination] = useQueryState(settingsQueryParamName, settingsQueryParser) const { data: apiBasedExtensions = [] } = useQuery( consoleQuery.apiBasedExtension.get.queryOptions(), ) const handleSelect = (id: string) => { onChange(id) setOpen(false) } const currentItem = apiBasedExtensions.find((item) => item.id === value) const handleApiBasedExtensionSaved = () => { setAddModalOpen(false) } const handleAddModalOpenChange = (nextOpen: boolean) => { if (!nextOpen) setAddModalOpen(false) } return ( <> ( )} />
{t(($) => $['apiBasedExtension.selector.title'], { ns: 'common' })}
{apiBasedExtensions.map((item) => ( ))}
{addModalOpen && ( )} ) }