('providers')
+ const activeTab = useUIStore((s) => s.activeSettingsTab)
+ const setActiveTab = useUIStore((s) => s.setActiveSettingsTab)
const pendingSettingsTab = useUIStore((s) => s.pendingSettingsTab)
const t = useTranslation()
@@ -189,7 +190,7 @@ export function Settings() {
if (!pendingSettingsTab) return
setActiveTab(pendingSettingsTab)
useUIStore.getState().setPendingSettingsTab(null)
- }, [pendingSettingsTab])
+ }, [pendingSettingsTab, setActiveTab])
return (
@@ -1372,7 +1373,7 @@ function ProviderFormModal({ open, onClose, mode, provider, presets }: ProviderF
)
const handleSubmit = async () => {
- if (!canSubmit) return
+ if (!canSubmit || isSubmitting) return
const normalizedModels = normalizeModelMapping(models)
const parsedAutoCompactWindow = parseAutoCompactWindowInput(autoCompactWindow)
const parsedModelContextWindows = buildModelContextWindows(models, modelContextInputs)
@@ -1435,6 +1436,11 @@ function ProviderFormModal({ open, onClose, mode, provider, presets }: ProviderF
}
}
+ const handleClose = () => {
+ if (isSubmitting) return
+ onClose()
+ }
+
const handleTest = async () => {
if (!baseUrl.trim() || !models.main.trim()) return
setIsTesting(true)
@@ -1469,13 +1475,13 @@ function ProviderFormModal({ open, onClose, mode, provider, presets }: ProviderF
return (
-
-