autofocus 1st subtask onload; disallow defocusing

Hunter
Saturday, August 3rd, 2024 at 10:25 PM

index.html+27-1

index.html
  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>