diff --git a/src/renderer/components/AddProviderModal.tsx b/src/renderer/components/AddProviderModal.tsx index 9d6a161..f466bcc 100644 --- a/src/renderer/components/AddProviderModal.tsx +++ b/src/renderer/components/AddProviderModal.tsx @@ -43,6 +43,24 @@ const AddProviderModal: React.FC = ({ onAdd, onClose }) = setFormData(newFormData) } + const handleApiUrlBlur = (e: React.FocusEvent) => { + const apiUrl = e.target.value.trim() + if (apiUrl) { + let normalizedApiUrl = apiUrl + + // 如果没有协议,添加 https:// + if (!normalizedApiUrl.match(/^https?:\/\//)) { + normalizedApiUrl = 'https://' + normalizedApiUrl + } + + setFormData(prev => ({ + ...prev, + apiUrl: normalizedApiUrl, + websiteUrl: inferWebsiteUrl(normalizedApiUrl) + })) + } + } + // 预设的供应商配置 const presets = [ { @@ -109,6 +127,7 @@ const AddProviderModal: React.FC = ({ onAdd, onClose }) = name="apiUrl" value={formData.apiUrl} onChange={handleChange} + onBlur={handleApiUrlBlur} placeholder="https://api.anthropic.com" required /> @@ -117,7 +136,7 @@ const AddProviderModal: React.FC = ({ onAdd, onClose }) =
= ({ provider, onSave, setFormData(newFormData) } + const handleApiUrlBlur = (e: React.FocusEvent) => { + const apiUrl = e.target.value.trim() + if (apiUrl) { + let normalizedApiUrl = apiUrl + + // 如果没有协议,添加 https:// + if (!normalizedApiUrl.match(/^https?:\/\//)) { + normalizedApiUrl = 'https://' + normalizedApiUrl + } + + setFormData(prev => ({ + ...prev, + apiUrl: normalizedApiUrl, + websiteUrl: inferWebsiteUrl(normalizedApiUrl) + })) + } + } + return (
e.stopPropagation()}> @@ -84,6 +102,7 @@ const EditProviderModal: React.FC = ({ provider, onSave, name="apiUrl" value={formData.apiUrl || ''} onChange={handleChange} + onBlur={handleApiUrlBlur} placeholder="https://api.anthropic.com" required autoComplete="off" @@ -93,7 +112,7 @@ const EditProviderModal: React.FC = ({ provider, onSave,