import { memo, useCallback, useMemo, useState, } from 'react' import { RiArrowDownSLine } from '@remixicon/react' import Button from '@/app/components/base/button' import Indicator from '@/app/components/header/indicator' import cn from '@/utils/classnames' import type { Credential } from './types' import { Authorized, usePluginAuth, } from '.' type AuthorizedInNodeProps = { provider: string onAuthorizationItemClick: (id: string) => void credentialId?: string } const AuthorizedInNode = ({ provider = '', onAuthorizationItemClick, credentialId, }: AuthorizedInNodeProps) => { const [isOpen, setIsOpen] = useState(false) const { canApiKey, canOAuth, credentials, disabled, } = usePluginAuth(provider, isOpen) const label = useMemo(() => { if (!credentialId) return 'Workspace default' const credential = credentials.find(c => c.id === credentialId) if (!credential) return 'Auth removed' return credential.name }, [credentials, credentialId]) const renderTrigger = useCallback((open?: boolean) => { return ( ) }, [label]) const extraAuthorizationItems: Credential[] = [ { id: '__workspace_default__', name: 'Workspace default', provider: '', is_default: false, isWorkspaceDefault: true, }, ] const handleAuthorizationItemClick = useCallback((id: string) => { onAuthorizationItemClick(id) setIsOpen(false) }, [ onAuthorizationItemClick, setIsOpen, ]) return ( ) } export default memo(AuthorizedInNode)