This commit is contained in:
QLHazyCoder
2026-04-24 23:28:29 +08:00
+9 -2
View File
@@ -528,6 +528,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;
@@ -1864,6 +1865,9 @@ async function clearRegistrationEmail(options = {}) {
function markSettingsDirty(isDirty = true) { function markSettingsDirty(isDirty = true) {
settingsDirty = isDirty; settingsDirty = isDirty;
if (isDirty) {
settingsSaveRevision += 1;
}
updateSaveButtonState(); updateSaveButtonState();
} }
@@ -1889,6 +1893,7 @@ async function saveSettings(options = {}) {
} }
const payload = collectSettingsPayload(); const payload = collectSettingsPayload();
const saveRevision = settingsSaveRevision;
settingsSaveInFlight = true; settingsSaveInFlight = true;
updateSaveButtonState(); updateSaveButtonState();
@@ -1903,11 +1908,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();