import { Popover, PopoverContent, PopoverTrigger } from '@langgenius/dify-ui/popover' import { useQuery } from '@tanstack/react-query' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { ACCOUNT_SETTING_TAB } from '@/app/components/header/account-setting/constants' import { useIntegrationsSetting } from '@/app/components/header/account-setting/use-integrations-setting' 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 openIntegrationsSetting = useIntegrationsSetting() 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 ( <> {currentItem ? (
{currentItem.name}
{currentItem.api_endpoint}
) : (
{t(($) => $['apiBasedExtension.selector.placeholder'], { ns: 'common', })}
)} } />
{t(($) => $['apiBasedExtension.selector.title'], { ns: 'common' })}
{apiBasedExtensions.map((item) => ( ))}
{addModalOpen && ( )} ) }