Ver Fonte

feat: 添加自动运行延迟状态管理,支持从消息更新界面状态

QLHazyCoder há 4 meses atrás
pai
commit
ce1440c42f
2 ficheiros alterados com 17 adições e 0 exclusões
  1. 10 0
      background.js
  2. 7 0
      sidepanel/sidepanel.js

+ 10 - 0
background.js

@@ -1183,6 +1183,13 @@ function formatAutoRunScheduleTime(timestamp) {
   });
 }
 
+async function setAutoRunDelayEnabledState(enabled) {
+  const normalized = Boolean(enabled);
+  await setPersistentSettings({ autoRunDelayEnabled: normalized });
+  await setState({ autoRunDelayEnabled: normalized });
+  broadcastDataUpdate({ autoRunDelayEnabled: normalized });
+}
+
 async function ensureScheduledAutoRunAlarm(scheduledAt) {
   if (!Number.isFinite(scheduledAt) || scheduledAt <= Date.now()) {
     return false;
@@ -1274,6 +1281,9 @@ async function launchScheduledAutoRun(trigger = 'alarm') {
     }
 
     await clearScheduledAutoRunAlarm();
+    if (trigger !== 'manual' && state.autoRunDelayEnabled) {
+      await setAutoRunDelayEnabledState(false);
+    }
     await broadcastAutoRunStatus(
       'running',
       {

+ 7 - 0
sidepanel/sidepanel.js

@@ -1223,6 +1223,13 @@ chrome.runtime.onMessage.addListener((message) => {
         displayLocalhostUrl.textContent = message.payload.localhostUrl;
         displayLocalhostUrl.classList.add('has-value');
       }
+      if (message.payload.autoRunDelayEnabled !== undefined) {
+        inputAutoDelayEnabled.checked = Boolean(message.payload.autoRunDelayEnabled);
+        updateAutoDelayInputState();
+      }
+      if (message.payload.autoRunDelayMinutes !== undefined) {
+        inputAutoDelayMinutes.value = String(normalizeAutoDelayMinutes(message.payload.autoRunDelayMinutes));
+      }
       break;
     }