Implement the GenAI report page, surfacing the AI-generated member progress report from the helper service.
Priority: P2
API endpoints used
| Method |
Endpoint |
Description |
| GET |
/helper/report/{member_id} |
Generate and return a plain-text progress report for a member |
Tasks
- Add
src/features/helper/api/queries.ts with a useGenerateReport hook using TanStack Query; the query should be disabled by default and triggered manually (not on mount)
- Add
src/features/helper/api/query-keys.ts for structured query keys
- Add a dedicated route
/helper in AppRouter.tsx with a nav link
- Build a page with a member selector (dropdown populated from
GET /members) and a "Generate Report" Button
- On button click, trigger the query for the selected member ID and display the returned plain-text report in a readable card or pre-formatted block
- Show a loading state while the report is being generated (the GenAI service may take several seconds)
- Show an error state if the request fails
Acceptance criteria
- Selecting a member and clicking "Generate Report" fetches and displays the plain-text report
- The button is disabled and shows a loading indicator while the request is in flight
- Selecting a different member and regenerating replaces the previous report
- If
/helper/report/{member_id} is unavailable, the UI shows a clear blocked/error state
Implement the GenAI report page, surfacing the AI-generated member progress report from the helper service.
Priority: P2
API endpoints used
Tasks
src/features/helper/api/queries.tswith auseGenerateReporthook using TanStack Query; the query should be disabled by default and triggered manually (not on mount)src/features/helper/api/query-keys.tsfor structured query keys/helperinAppRouter.tsxwith a nav linkGET /members) and a "Generate Report" ButtonAcceptance criteria
/helper/report/{member_id}is unavailable, the UI shows a clear blocked/error state