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

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 settingsSaveInFlight = false;
let settingsAutoSaveTimer = null;
let settingsSaveRevision = 0;
let cloudflareDomainEditMode = false;
let cloudflareTempEmailDomainEditMode = false;
let modalChoiceResolver = null;
@@ -1863,6 +1864,9 @@ async function clearRegistrationEmail(options = {}) {
function markSettingsDirty(isDirty = true) {
settingsDirty = isDirty;
if (isDirty) {
settingsSaveRevision += 1;
}
updateSaveButtonState();
}
@@ -1888,6 +1892,7 @@ async function saveSettings(options = {}) {
}
const payload = collectSettingsPayload();
const saveRevision = settingsSaveRevision;
settingsSaveInFlight = true;
updateSaveButtonState();
@@ -1902,11 +1907,13 @@ async function saveSettings(options = {}) {
throw new Error(response.error);
}
if (response?.state) {
if (response?.state && saveRevision === settingsSaveRevision) {
applySettingsState(response.state);
} else {
syncLatestState(payload);
markSettingsDirty(false);
if (saveRevision === settingsSaveRevision) {
markSettingsDirty(false);
}
updatePanelModeUI();
updateMailProviderUI();
updateButtonStates();