fix: NPM remote toggle uses onchange handler instead of to prevent spurious saves
This commit is contained in:
@@ -130,26 +130,19 @@
|
|||||||
} catch { sslCertName = `Certificate #${sslCertificateId}`; }
|
} catch { sslCertName = `Certificate #${sslCertificateId}`; }
|
||||||
}
|
}
|
||||||
|
|
||||||
let initialized = $state(false);
|
async function handleNpmRemoteChange() {
|
||||||
|
|
||||||
async function saveNpmRemote(value: boolean) {
|
|
||||||
try {
|
try {
|
||||||
await updateSettings({ npm_remote: value } as any);
|
await updateSettings({ npm_remote: npmRemote } as any);
|
||||||
toasts.success($t('settingsCredentials.saved'));
|
toasts.success($t('settingsCredentials.saved'));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
toasts.error(err instanceof Error ? err.message : $t('settingsCredentials.saveFailed'));
|
toasts.error(err instanceof Error ? err.message : $t('settingsCredentials.saveFailed'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Auto-save npm_remote when toggled (skip initial load).
|
async function init() {
|
||||||
$effect(() => {
|
await loadData();
|
||||||
const val = npmRemote;
|
await resolveCertName();
|
||||||
if (initialized) {
|
}
|
||||||
saveNpmRemote(val);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
async function init() { await loadData(); await resolveCertName(); initialized = true; }
|
|
||||||
$effect(() => { init(); });
|
$effect(() => { init(); });
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -220,7 +213,7 @@
|
|||||||
<!-- NPM Mode -->
|
<!-- NPM Mode -->
|
||||||
<div class="rounded-xl border border-[var(--border-primary)] bg-[var(--surface-card)] p-6 shadow-[var(--shadow-sm)]">
|
<div class="rounded-xl border border-[var(--border-primary)] bg-[var(--surface-card)] p-6 shadow-[var(--shadow-sm)]">
|
||||||
<div class="flex items-center gap-3">
|
<div class="flex items-center gap-3">
|
||||||
<ToggleSwitch bind:checked={npmRemote} label={$t('settingsNpm.remoteMode')} />
|
<ToggleSwitch bind:checked={npmRemote} label={$t('settingsNpm.remoteMode')} onchange={handleNpmRemoteChange} />
|
||||||
<div>
|
<div>
|
||||||
<span class="text-sm font-medium text-[var(--text-primary)]">{$t('settingsNpm.remoteMode')}</span>
|
<span class="text-sm font-medium text-[var(--text-primary)]">{$t('settingsNpm.remoteMode')}</span>
|
||||||
<p class="text-xs text-[var(--text-tertiary)]">{$t('settingsNpm.remoteModeHelp')}</p>
|
<p class="text-xs text-[var(--text-tertiary)]">{$t('settingsNpm.remoteModeHelp')}</p>
|
||||||
|
|||||||
Reference in New Issue
Block a user