import React, { useState, useEffect } from 'react' import { Provider } from '../../shared/types' import { inferWebsiteUrl } from '../../shared/utils' 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, apiUrl: provider.apiUrl, apiKey: provider.apiKey, websiteUrl: provider.websiteUrl || '' }) const [showPassword, setShowPassword] = useState(false) useEffect(() => { setFormData({ name: provider.name, apiUrl: provider.apiUrl, apiKey: provider.apiKey, websiteUrl: provider.websiteUrl || '' }) }, [provider]) const handleSubmit = (e: React.FormEvent) => { e.preventDefault() if (!formData.name || !formData.apiUrl || !formData.apiKey) { alert('请填写所有必填字段') return } onSave({ ...provider, ...formData }) } const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target const newFormData = { ...formData, [name]: value } // 如果修改的是API地址,自动推测网站地址 if (name === 'apiUrl') { newFormData.websiteUrl = inferWebsiteUrl(value) } setFormData(newFormData) } return (
e.stopPropagation()}>

编辑供应商

用于在面板中显示可访问的网站链接,留空则显示API地址
) } export default EditProviderModal