diff --git a/background.js b/background.js index 1adc19e..f5547d0 100644 --- a/background.js +++ b/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', { diff --git a/sidepanel/sidepanel.js b/sidepanel/sidepanel.js index 029fe98..90d702b 100644 --- a/sidepanel/sidepanel.js +++ b/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; }