import { useEffect } from 'react' import { Dialog, Form, Input, Switch, Select } from 'tdesign-react' import type { Provider } from '@/types' import type { SubmitContext } from 'tdesign-react/es/form/type' interface ProviderFormValues { id: string name: string apiKey: string baseUrl: string protocol: 'openai' | 'anthropic' enabled: boolean } interface ProviderFormProps { open: boolean provider?: Provider onSave: (values: ProviderFormValues) => Promise | void onCancel: () => void loading: boolean } export function ProviderForm({ open, provider, onSave, onCancel, loading }: ProviderFormProps) { const [form] = Form.useForm() const isEdit = !!provider useEffect(() => { if (open && form) { if (provider) { form.setFieldsValue({ id: provider.id, name: provider.name, apiKey: provider.apiKey, baseUrl: provider.baseUrl, protocol: provider.protocol, enabled: provider.enabled, }) } else { form.reset() form.setFieldsValue({ enabled: true, protocol: 'openai' }) } } }, [open, provider]) const handleSubmit = (context: SubmitContext) => { if (context.validateResult === true && form) { const values = form.getFieldsValue(true) as ProviderFormValues onSave(values) } } return ( { form?.submit() return false }} onClose={onCancel} confirmLoading={loading} confirmBtn='保存' cancelBtn='取消' >
) }