Skip to content

Commit c8e80ce

Browse files
efebaslilarEfe Başlılarpriyankarpal
authored
complate simple todo app (#1620)
Co-authored-by: Efe Başlılar <[email protected]> Co-authored-by: Priyankar Pal <[email protected]>
1 parent 936737c commit c8e80ce

File tree

3 files changed

+719
-0
lines changed

3 files changed

+719
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Simple Todo App
2+
3+
A productivity-focused Todo app built with React + TypeScript. Capture tasks, keep them synced with local storage, edit inline, filter by status, and use bulk actions to stay tidy.
4+
5+
## Play Demographic
6+
7+
- Language: ts
8+
- Level: Beginner
9+
10+
## Creator Information
11+
12+
- User: efebaslilar
13+
- Gihub Link: https://github.com/efebaslilar
14+
- Blog:
15+
- Video:
16+
17+
## Implementation Details
18+
19+
- Core state is handled with `useState`, fed by a lazy initializer that restores the last session from `localStorage`, falling back to seed data for new visitors.
20+
- `useMemo` derives the filtered + sorted list, overall stats, and completion ratios without recomputing on every render.
21+
- Inline editing keeps focus management tight via refs, keyboard shortcuts (Enter to save, Esc to cancel), and blur handling to commit changes.
22+
- Bulk controls (mark all, clear completed, clear all) provide quick-maintenance options that stay disabled until relevant, keeping the UI calm.
23+
- Styling focuses on approachability with card-like elevation, responsive grid tooling, and subtle affordances for hover/focus states.
24+
25+
## Consideration
26+
27+
- Because todos persist locally, clearing the browser’s storage (or the “Clear all” action) is the quickest way to start fresh.
28+
- The seed data auto-populates for newcomers; subsequent visits will hydrate from the saved list instead.
29+
30+
## Resources
31+
32+
- [React Docs – Synchronizing with Effects](https://react.dev/learn/synchronizing-with-effects)
33+
- [MDN – KeyboardEvent reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent)

0 commit comments

Comments
 (0)