Files
stack/workers/project-detail-page-prompt.txt

43 lines
2.2 KiB
Plaintext

Create the missing project detail page in ~/src/mosaic-stack.
## Problem
Clicking a project card on /projects navigates to /projects/[id] but that route doesn't exist → 404.
## What to Build
Create: apps/web/src/app/(authenticated)/projects/[id]/page.tsx
The API endpoint GET /api/projects/:id returns a project with this shape:
{
id, name, description, status, priority, startDate, dueDate, createdAt, updatedAt,
creator: { id, name, email },
tasks: [{ id, title, status, priority, dueDate }],
events: [{ id, title, startTime, endTime }],
_count: { tasks, events }
}
## Page Requirements
1. Fetch the project using the existing API client pattern (look at how projects/page.tsx calls the API — follow same auth/workspace patterns)
2. Display: project name, description, status badge, priority badge, dates, creator
3. Display tasks list: title, status, priority, dueDate — empty state if none
4. Display events list: title, startTime, endTime — empty state if none
5. Back button → /projects
6. Loading state and error state (show friendly message if project not found or fetch fails)
7. Match the visual style of the existing projects/page.tsx (same component library, shadcn/ui, same spacing/layout conventions)
## API Client
Look at apps/web/src/lib/api/ for existing project fetch functions. If no getProject(id) function exists, add it following the same pattern as other functions in that file.
## Process
1. git checkout main && git pull --ff-only origin main
2. Branch: feat/project-detail-page
3. Check apps/web/src/lib/api/ for existing project API functions
4. Create the page and any needed API client functions
5. Run: pnpm turbo lint typecheck --filter=@mosaic/web
6. Run: pnpm --filter @mosaic/web test -- --run
7. Review: confirm page handles loading/error/not-found states, confirm no TypeScript errors
8. Commit --no-verify: "feat(web): add project detail page (/projects/[id])"
9. Push and PR: ~/.config/mosaic/tools/git/pr-create.sh -t "feat(web): add project detail page" -b "Clicking a project card navigated to /projects/[id] which returned 404. This adds the missing detail page showing project info, tasks, and events."
When completely finished:
openclaw system event --text "Done: project detail page PR ready" --mode now