import { memo, useCallback, } from 'react' import { RiAddLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { Authorized } from '@/app/components/header/account-setting/model-provider-page/model-auth' import cn from '@/utils/classnames' import type { Credential, CustomConfigurationModelFixedFields, CustomModelCredential, ModelCredential, ModelProvider, } from '@/app/components/header/account-setting/model-provider-page/declarations' import { ConfigurationMethodEnum, ModelModalModeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' type AddCredentialInLoadBalancingProps = { provider: ModelProvider model: CustomModelCredential configurationMethod: ConfigurationMethodEnum currentCustomConfigurationModelFixedFields?: CustomConfigurationModelFixedFields modelCredential: ModelCredential onSelectCredential: (credential: Credential) => void onUpdate?: (payload?: any, formValues?: Record) => void onRemove?: (credentialId: string) => void } const AddCredentialInLoadBalancing = ({ provider, model, configurationMethod, modelCredential, onSelectCredential, onUpdate, onRemove, }: AddCredentialInLoadBalancingProps) => { const { t } = useTranslation() const { available_credentials, } = modelCredential const isCustomModel = configurationMethod === ConfigurationMethodEnum.customizableModel const notAllowCustomCredential = provider.allow_custom_token === false const handleUpdate = useCallback((payload?: any, formValues?: Record) => { onUpdate?.(payload, formValues) }, [onUpdate]) const renderTrigger = useCallback((open?: boolean) => { const Item = (
{t('common.modelProvider.auth.addCredential')}
) return Item }, [t, isCustomModel]) return ( ) } export default memo(AddCredentialInLoadBalancing)