修复设置保存响应覆盖输入

This commit is contained in:
Q3CC
2026-04-24 22:00:29 +08:00
committed by Q3CC
parent 4091adf970
commit 12b08f2cc3
+9 -2
View File
@@ -527,6 +527,7 @@ let currentAutoRun = {
let settingsDirty = false; let settingsDirty = false;
let settingsSaveInFlight = false; let settingsSaveInFlight = false;
let settingsAutoSaveTimer = null; let settingsAutoSaveTimer = null;
let settingsSaveRevision = 0;
let cloudflareDomainEditMode = false; let cloudflareDomainEditMode = false;
let cloudflareTempEmailDomainEditMode = false; let cloudflareTempEmailDomainEditMode = false;
let modalChoiceResolver = null; let modalChoiceResolver = null;
@@ -1863,6 +1864,9 @@ async function clearRegistrationEmail(options = {}) {
function markSettingsDirty(isDirty = true) { function markSettingsDirty(isDirty = true) {
settingsDirty = isDirty; settingsDirty = isDirty;
if (isDirty) {
settingsSaveRevision += 1;
}
updateSaveButtonState(); updateSaveButtonState();
} }
@@ -1888,6 +1892,7 @@ async function saveSettings(options = {}) {
} }
const payload = collectSettingsPayload(); const payload = collectSettingsPayload();
const saveRevision = settingsSaveRevision;
settingsSaveInFlight = true; settingsSaveInFlight = true;
updateSaveButtonState(); updateSaveButtonState();
@@ -1902,11 +1907,13 @@ async function saveSettings(options = {}) {
throw new Error(response.error); throw new Error(response.error);
} }
if (response?.state) { if (response?.state && saveRevision === settingsSaveRevision) {
applySettingsState(response.state); applySettingsState(response.state);
} else { } else {
syncLatestState(payload); syncLatestState(payload);
markSettingsDirty(false); if (saveRevision === settingsSaveRevision) {
markSettingsDirty(false);
}
updatePanelModeUI(); updatePanelModeUI();
updateMailProviderUI(); updateMailProviderUI();
updateButtonStates(); updateButtonStates();