feat: switch provider cleans other custom providers and sets default model

This commit is contained in:
KimiSwitch Dev committed 2026-07-08 14:02:09 +08:00
1 parent 4fecf191da
commit 8c515f42dc
4 files changed
+56 -25

No files matched your search

+34 -11
View File
@@ -191,17 +191,40 @@ export default function App() {
updateConfig((cfg) => ({ ...cfg, default_model: alias }));
};
const handleToggleProviderEnabled = (name: string) => {
const handleSwitchProvider = (name: string) => {
updateConfig((cfg) => {
const provider = cfg.providers[name];
if (!provider) return cfg;
return {
...cfg,
providers: {
...cfg.providers,
[name]: { ...provider, enabled: !provider.enabled },
},
};
const target = cfg.providers[name];
if (!target) return cfg;
const isKimiNative = (p: Provider) => p.managed === true;
// Keep Kimi native (managed) providers and the selected provider only.
const providers: Record<string, Provider> = {};
for (const [key, p] of Object.entries(cfg.providers)) {
if (isKimiNative(p)) {
providers[key] = p;
}
}
providers[name] = { ...target, enabled: true };
// Drop models whose provider was removed.
const models: Record<string, Model> = {};
for (const [key, m] of Object.entries(cfg.models)) {
if (providers[m.provider]) {
models[key] = m;
}
}
// Set default model to the first model of the selected provider.
let default_model: string | null = null;
for (const [key, m] of Object.entries(models)) {
if (m.provider === name) {
default_model = key;
break;
}
}
return { ...cfg, providers, models, default_model };
});
};
@@ -320,7 +343,7 @@ export default function App() {
}}
onDelete={handleDeleteProvider}
onAdd={handleAddProvider}
onToggleEnabled={handleToggleProviderEnabled}
onSwitchProvider={handleSwitchProvider}
/>
) : currentProvider ? (
<ProviderEdit