diff --git a/components/settings/image-settings.tsx b/components/settings/image-settings.tsx index 172bd7493..0931cb2b1 100644 --- a/components/settings/image-settings.tsx +++ b/components/settings/image-settings.tsx @@ -334,10 +334,10 @@ export function ImageSettings({ selectedProviderId }: ImageSettingsProps) {
diff --git a/components/settings/index.tsx b/components/settings/index.tsx index d841b3eaf..5f122e2e5 100644 --- a/components/settings/index.tsx +++ b/components/settings/index.tsx @@ -1034,6 +1034,7 @@ export function SettingsDialog({ open, onOpenChange, initialSection }: SettingsD baseUrl={providersConfig[selectedProviderId]?.baseUrl} providerType={providersConfig[selectedProviderId]?.type} requiresApiKey={providersConfig[selectedProviderId]?.requiresApiKey} + isServerConfigured={providersConfig[selectedProviderId]?.isServerConfigured} /> {/* Add Provider Dialog */} diff --git a/components/settings/model-edit-dialog.tsx b/components/settings/model-edit-dialog.tsx index aae60a091..d2f9cb3e0 100644 --- a/components/settings/model-edit-dialog.tsx +++ b/components/settings/model-edit-dialog.tsx @@ -24,6 +24,7 @@ interface ModelEditDialogProps { baseUrl?: string; providerType?: string; requiresApiKey?: boolean; + isServerConfigured?: boolean; } export function ModelEditDialog({ @@ -38,6 +39,7 @@ export function ModelEditDialog({ baseUrl, providerType, requiresApiKey, + isServerConfigured, }: ModelEditDialogProps) { const { t } = useI18n(); const [testStatus, setTestStatus] = useState<'idle' | 'testing' | 'success' | 'error'>('idle'); @@ -59,9 +61,7 @@ export function ModelEditDialog({ }; const handleTestModel = useCallback(async () => { - if (!editingModel || !apiKey) { - setTestStatus('error'); - setTestMessage(t('settings.apiKeyRequired') || 'API Key is required'); + if (!editingModel) { return; } @@ -305,7 +305,11 @@ export function ModelEditDialog({ variant="outline" size="sm" onClick={handleTestModel} - disabled={!editingModel.model.id || testStatus === 'testing'} + disabled={ + !editingModel.model.id || + testStatus === 'testing' || + (requiresApiKey && !apiKey && !isServerConfigured) + } className={cn( testStatus === 'success' && 'border-green-600 text-green-600 hover:bg-green-50', testStatus === 'error' && 'border-red-600 text-red-600 hover:bg-red-50', diff --git a/components/settings/video-settings.tsx b/components/settings/video-settings.tsx index ffe3506e9..0260c165a 100644 --- a/components/settings/video-settings.tsx +++ b/components/settings/video-settings.tsx @@ -337,10 +337,10 @@ export function VideoSettings({ selectedProviderId }: VideoSettingsProps) {