implement backspace stopping

Hunter
Tuesday, July 30th, 2024 at 11:56 AM

todo.html+23-2

todo.html
60  				checkbox.type = 'checkbox';
61  				updateCheckboxState(checkbox, task.state);
62  				checkbox.addEventListener('click', (e) => {
   -					e.preventDefault(); // Prevent default checkbox behavior
63 +					e.preventDefault();
64  					toggleTaskState(task);
65  				});
66  
67  				const taskInput = document.createElement('input');
68  				taskInput.type = 'text';
69  				taskInput.value = task.text;
   -				taskInput.addEventListener('keydown', (e) => handleKeyDown(e, task));
70 +
71 +				let canDelete = true;
72 +
73 +				taskInput.addEventListener('keydown', (e) => {
74 +					if (e.key === 'Backspace') {
75 +						if (taskInput.value === '' && canDelete && task !== taskPath[0]) {
76 +							e.preventDefault();
77 +							deleteTask(task);
78 +						} else if (taskInput.value !== '') {
79 +							canDelete = false;
80 +						}
81 +					} else {
82 +						handleKeyDown(e, task);
83 +					}
84 +				});
85 +
86 +				taskInput.addEventListener('keyup', (e) => {
87 +					if (e.key === 'Backspace') {
88 +						canDelete = (taskInput.value === '');
89 +					}
90 +				});
91 +
92  				taskInput.addEventListener('input', () => {
93  					task.text = taskInput.value;
94  				});