1
00:00:00,000 --> 00:00:06,400
The app is a classic vanilla JavaScript todo list with
client-side routing and local storage persistence.

2
00:00:06,100 --> 00:00:13,300
The input field accepts new todos and binds Enter to
submit, a pattern common in task management UIs.

3
00:00:13,000 --> 00:00:17,400
Text typed here is captured and queued for addition on
submit.

4
00:00:17,100 --> 00:00:23,100
Submitting creates an item in the list and appends it to
the local storage-backed model.

5
00:00:22,800 --> 00:00:28,400
The input is reused to add multiple todos, each
submission updating the underlying array.

6
00:00:28,100 --> 00:00:32,900
A second task is typed, demonstrating that the form
accepts repeat submissions.

7
00:00:32,600 --> 00:00:37,800
Entering this todo updates the counter and list,
reflecting the model's state changes.

8
00:00:37,500 --> 00:00:42,700
Toggling a checkbox flips the item's completed flag and
applies the strikethrough style.

9
00:00:42,400 --> 00:00:48,400
The Active filter is a hash-based route that re-renders
the list showing only incomplete items.

10
00:00:48,100 --> 00:00:53,700
The Completed route filters the same data to show
finished tasks, preserving the model.

11
00:00:53,400 --> 00:00:59,800
Returning to the All route restores the full list,
demonstrating the view is derived from state.

12
00:00:59,500 --> 00:01:04,700
Clear completed removes all finished items from storage
and recalculates the remaining count.
