diff options
Diffstat (limited to 'web')
| -rw-r--r-- | web/app.js | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -219,6 +219,11 @@ export function isUserEditing(activeEl = (typeof document !== 'undefined' ? docu if (tag === 'INPUT' || tag === 'TEXTAREA') return true; if (activeEl.isContentEditable) return true; if (activeEl.closest('[role="dialog"]') || activeEl.closest('dialog')) return true; + // Also block re-renders when any modal/panel is open, even without focus. + if (typeof document !== 'undefined') { + if (document.querySelector('dialog[open]')) return true; + if (document.getElementById('task-panel')?.classList.contains('open')) return true; + } return false; } @@ -811,6 +816,7 @@ async function handleStartNextTask(btn) { async function poll() { try { const tasks = await fetchTasks(); + if (isUserEditing()) return; renderTaskList(tasks); renderActiveTaskList(tasks); if (isRunningTabActive()) { |
