From 12b08f2cc3c06843edaa9a25f5405ca23231d48a Mon Sep 17 00:00:00 2001 From: Q3CC Date: Fri, 24 Apr 2026 22:00:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=BE=E7=BD=AE=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=93=8D=E5=BA=94=E8=A6=86=E7=9B=96=E8=BE=93=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sidepanel/sidepanel.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/sidepanel/sidepanel.js b/sidepanel/sidepanel.js index e1b2311..40ee4fd 100644 --- a/sidepanel/sidepanel.js +++ b/sidepanel/sidepanel.js @@ -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();