autofocus 1st subtask onload; disallow defocusing
Hunter
Saturday, August 3rd, 2024 at 10:25 PM
1 <!DOCTYPE html>
-<html lang="en" data-theme="harvest"> <!-- update to change theme -->
2 +<html lang="en" data-theme="gak"> <!-- update to change theme -->
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
137 }
138 </style>
139 <script>
140 + document.addEventListener('click', function(e) {
141 + if (!e.target.closest('.task-container')) {
142 + const activeTask = document.querySelector('.task-container.active');
143 + if (activeTask) {
144 + const taskInput = activeTask.querySelector('input[type="text"]');
145 + taskInput.focus();
146 + } else {
147 + selectFirstSubtask();
148 + }
149 + }
150 + });
151 document.addEventListener('DOMContentLoaded', function() {
152 const appContainer = document.getElementById('app-container');
153 let rootTask = loadFromLocalStorage();
674 }
675 updateBreadcrumbs(task);
676 lastSubtaskDownArrowReleased = isLastSubtask(task);
677 + input.focus();
678 }
679
680 function updateBreadcrumbs(selectedTask) {
708 const selectedTask = currentTask.subtasks.find(t => t.id === currentTask.selectedSubtaskId);
709 if (selectedTask) {
710 selectAndFocusTask(selectedTask);
711 + } else {
712 + selectFirstSubtask();
713 }
714 + } else {
715 + selectFirstSubtask();
716 + }
717 + }
718 +
719 + function selectFirstSubtask() {
720 + if (currentTask.subtasks.length > 0) {
721 + const firstSubtask = currentTask.subtasks[0];
722 + selectAndFocusTask(firstSubtask);
723 + } else {
724 + selectAndFocusTask(currentTask);
725 }
726 }
727
752 }
753
754 renderCurrentView();
755 + selectFirstSubtask();
756 });
757 </script>
758 </head>