diff --git a/static/js/tasks.js b/static/js/tasks.js index 6b7ed26..da8c1ad 100644 --- a/static/js/tasks.js +++ b/static/js/tasks.js @@ -52,7 +52,6 @@ async function loadTasks() { if (savedTaskExists) { focusTaskId = savedTaskId; scrollToTask(savedTaskId); - selectedTaskId = savedTaskId; if (isLandscapeMode()) { selectTask(savedTaskId); } @@ -69,8 +68,6 @@ async function loadTasks() { } } - // Wait one frame so the async scroll event from scrollToTask fires first, - // then set in-focus and bind handlers after it has been consumed. requestAnimationFrame(() => { if (focusTaskId) { document.querySelectorAll(".task-item.in-focus").forEach(el => el.classList.remove("in-focus")); @@ -232,6 +229,14 @@ function selectTask(taskId) { if (!task) return; + document.querySelectorAll(".task-item.in-focus").forEach(el => el.classList.remove("in-focus")); + const taskEl = document.querySelector(`[data-task-id="${taskId}"]`); + if (taskEl) { + taskEl.classList.add("in-focus"); + } + + scrollToTask(taskId); + document.getElementById("edit-task-title").value = task.title; document.getElementById("edit-task-desc").value = task.desc || ""; document.getElementById("side-panel-error").textContent = "";