'use client' import type { FC } from 'react' import React from 'react' import { useTranslation } from 'react-i18next' import { RiArrowRightUpLine, RiCloseLine } from '@remixicon/react' import ActionButton from '@/app/components/base/action-button' import Button from '@/app/components/base/button' import Drawer from '@/app/components/base/drawer' import Form from '@/app/components/header/account-setting/model-provider-page/model-modal/Form' import Toast from '@/app/components/base/toast' import { useRenderI18nObject } from '@/hooks/use-i18n' import cn from '@/utils/classnames' type Props = { formSchemas: any defaultValues?: any onCancel: () => void onSaved: (value: Record) => void } const EndpointModal: FC = ({ formSchemas, defaultValues = {}, onCancel, onSaved, }) => { const getValueFromI18nObject = useRenderI18nObject() const { t } = useTranslation() const [tempCredential, setTempCredential] = React.useState(defaultValues) const handleSave = () => { for (const field of formSchemas) { if (field.required && !tempCredential[field.name]) { Toast.notify({ type: 'error', message: t('common.errorMsg.fieldRequired', { field: getValueFromI18nObject(field.label) }) }) return } } onSaved(tempCredential) } return ( <>
{t('plugin.detailPanel.endpointModalTitle')}
{t('plugin.detailPanel.endpointModalDesc')}
{ setTempCredential(v) }} formSchemas={formSchemas} isEditMode={true} showOnVariableMap={{}} validating={false} inputClassName='bg-components-input-bg-normal hover:bg-components-input-bg-hover' fieldMoreInfo={item => item.url ? ( {t('tools.howToGet')} ) : null} />
) } export default React.memo(EndpointModal)