2.4 KiB
2.4 KiB
Phase 4 Notes (T6)
Pages built
- Tasks (
/tasks): Kanban board with dnd-kit drag-and-drop between 4 status columns (Todo, In Progress, Done, Cancelled) + List view with TanStack Table. Create/edit via dialog/side panel. Optimistic updates via TanStack Query mutations. - Habits (
/habits): List with streak display, 7-day mini completion grid, "Mark complete" button. Create/edit via dialog/side panel. History tab shows completion log. - Projects (
/projects): Card grid with progress bars. Detail panel with Overview/Tasks/Sections tabs. Create/edit via dialog. - Notes (
/notes): Two-pane layout (list + contentEditable editor). Backlinks and version history toggles. Auto-save on 500ms debounce. - Calendar (
/calendar): Month grid with date-fns. Events from API displayed with color coding. Create/edit/delete via dialogs. - Graph (
/graph): SVG-based circular layout visualization. Filter panel for entity types. Node detail panel. Full react-force-graph-2d integration deferred to T8. - Search (
/search): Debounced cross-entity search. Type filter chips. Recent searches in localStorage. Results grouped by type with highlighted snippets.
Shared infrastructure
src/hooks/use-realtime.ts: SSE hook subscribing to/api/realtimewith exponential backoff reconnect. Invalidates TanStack Query caches on entity events.src/components/entities/entity-detail-panel.tsx: Reusable Sheet-based side panel.src/lib/types/index.ts: Shared TypeScript interfaces for all entities.
Packages installed
- @dnd-kit/core, @dnd-kit/sortable, @dnd-kit/utilities
- @tiptap/react, @tiptap/starter-kit, @tiptap/extension-placeholder, @tiptap/extension-mention, @tiptap/extension-task-list, @tiptap/extension-task-item, @tiptap/extension-link, @tiptap/extension-code-block-lowlight, @tiptap/pm, @tiptap/suggestion
- recharts
- react-big-calendar
- react-force-graph-2d
- react-hook-form, @hookform/resolvers
- @tanstack/react-table
- date-fns
Notes for T7
- useApiQuery / useApiMutation patterns in
src/lib/api.tsare the standard for all data fetching - EntityDetailPanel in
src/components/entities/is reusable for any entity - Forms use controlled state (not react-hook-form yet - T7 can upgrade)
- Calendar and Graph use basic implementations; T8 will formalize with react-big-calendar and react-force-graph-2d
- TipTap is installed but Notes page uses a simple contentEditable for now; T7/T8 can upgrade to full TipTap