import React, { useState, useEffect } from 'react' import { Provider } from '../../shared/types' import './AddProviderModal.css' interface EditProviderModalProps { provider: Provider onSave: (provider: Provider) => void onClose: () => void } const EditProviderModal: React.FC = ({ provider, onSave, onClose }) => { const [formData, setFormData] = useState({ name: provider.name, websiteUrl: provider.websiteUrl || '', settingsConfig: JSON.stringify(provider.settingsConfig, null, 2) }) const [error, setError] = useState('') // 初始化时更新表单数据 useEffect(() => { setFormData({ name: provider.name, websiteUrl: provider.websiteUrl || '', settingsConfig: JSON.stringify(provider.settingsConfig, null, 2) }) }, [provider]) const handleSubmit = (e: React.FormEvent) => { e.preventDefault() setError('') if (!formData.name) { setError('请填写供应商名称') return } if (!formData.settingsConfig.trim()) { setError('请填写配置内容') return } let settingsConfig: object try { settingsConfig = JSON.parse(formData.settingsConfig) } catch (err) { setError('配置JSON格式错误,请检查语法') return } onSave({ ...provider, name: formData.name, websiteUrl: formData.websiteUrl, settingsConfig, }) } const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target setFormData({ ...formData, [name]: value }) } return (

编辑供应商

{error && (
{error}
)}