feat: implement web frontend with full task management UI (#39) #46

Merged
maximus merged 1 commit from issue-39-frontend-web into master 2026-04-06 16:58:36 +00:00
Owner

Fixes #39

Summary

  • 13 new files: components, pages, layout, WebSocket hook
  • Protected (app) layout group with sidebar + header
  • List detail page: tasks with filters, sorting, inline editing
  • Subtasks: creation, nested display
  • Dark mode: class-based with localStorage persistence
  • WebSocket sync: connects via ticket auth, triggers router.refresh() on messages
  • Responsive: sidebar collapses to hamburger on mobile
  • All UI strings in French

Components

Sidebar, TaskList, TaskItem, TaskForm, FilterBar, ThemeToggle, Header, AppShell, ThemeScript, useSync

Depends on

  • PR #42 (setup + auth + API + WebSocket, all merged into branch)
Fixes #39 ## Summary - 13 new files: components, pages, layout, WebSocket hook - Protected `(app)` layout group with sidebar + header - List detail page: tasks with filters, sorting, inline editing - Subtasks: creation, nested display - Dark mode: class-based with localStorage persistence - WebSocket sync: connects via ticket auth, triggers router.refresh() on messages - Responsive: sidebar collapses to hamburger on mobile - All UI strings in French ## Components Sidebar, TaskList, TaskItem, TaskForm, FilterBar, ThemeToggle, Header, AppShell, ThemeScript, useSync ## Depends on - PR #42 (setup + auth + API + WebSocket, all merged into branch)
maximus added 1 commit 2026-04-06 16:41:11 +00:00
- Protected (app) layout with sidebar, header, theme toggle
- List detail page with tasks, filters, sorting
- Inline task editing (title, notes, priority, due date, recurrence)
- Subtask creation and nested display
- Dark mode (class-based, persisted to localStorage)
- WebSocket sync hook (connects via ticket auth, auto-refresh)
- Responsive sidebar (hamburger on mobile)
- French UI strings throughout
- Components: Sidebar, TaskList, TaskItem, TaskForm, FilterBar,
  ThemeToggle, Header, AppShell

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

Review — APPROVE

Summary: Complete web frontend with task management, dark mode, responsive sidebar, and WebSocket sync. Clean component architecture.

  • Layout protects routes via getAuthenticatedUser()
  • Queries filter by userId + soft-delete
  • All UI strings in French
  • Dark mode with localStorage persistence
  • WebSocket hook for real-time updates
  • Responsive sidebar
  • TypeScript compiles
  • No secrets or security issues

Note: Priority colors use Tailwind custom classes (border-l-vert, etc.) — ensure these are defined in Tailwind config or globals.css.

## Review — APPROVE **Summary**: Complete web frontend with task management, dark mode, responsive sidebar, and WebSocket sync. Clean component architecture. - [x] Layout protects routes via getAuthenticatedUser() - [x] Queries filter by userId + soft-delete - [x] All UI strings in French - [x] Dark mode with localStorage persistence - [x] WebSocket hook for real-time updates - [x] Responsive sidebar - [x] TypeScript compiles - [x] No secrets or security issues **Note**: Priority colors use Tailwind custom classes (border-l-vert, etc.) — ensure these are defined in Tailwind config or globals.css.
maximus changed target branch from issue-35-web-setup to master 2026-04-06 16:58:05 +00:00
maximus merged commit b7a090df71 into master 2026-04-06 16:58:36 +00:00
maximus deleted branch issue-39-frontend-web 2026-04-06 16:58:37 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/simpl-liste#46
No description provided.