Implement History page with table view and pagination (P2.12)
Add functional history page that displays DailyLog entries in a table with date, cycle day/phase, decision, body battery, HRV, and intensity columns. Features include: - Data fetching from /api/history endpoint - Pagination with previous/next navigation - Date filtering with start/end date inputs - Decision color coding (REST=red, TRAIN=green, GENTLE/LIGHT/REDUCED=yellow) - Loading and error states - Empty state when no history exists Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -49,7 +49,7 @@ This file is maintained by Ralph. Run `./ralph-sandbox.sh plan 3` to generate ta
|
||||
| Settings (`/settings`) | **COMPLETE** | Form with cycleLength, notificationTime, timezone |
|
||||
| Settings/Garmin (`/settings/garmin`) | Placeholder | Needs token management UI |
|
||||
| Calendar (`/calendar`) | Placeholder | Needs MonthView integration |
|
||||
| History (`/history`) | Placeholder | Needs list/pagination implementation |
|
||||
| History (`/history`) | **COMPLETE** | Table view with date filtering, pagination, decision styling, 26 tests |
|
||||
| Plan (`/plan`) | Placeholder | Needs phase details display |
|
||||
|
||||
### Components
|
||||
@@ -90,6 +90,7 @@ This file is maintained by Ralph. Run `./ralph-sandbox.sh plan 3` to generate ta
|
||||
| `src/app/api/calendar/[userId]/[token].ics/route.test.ts` | **EXISTS** - 10 tests (token validation, ICS generation, caching, error handling) |
|
||||
| `src/app/api/calendar/regenerate-token/route.test.ts` | **EXISTS** - 9 tests (token generation, URL formatting, auth) |
|
||||
| `src/app/api/history/route.test.ts` | **EXISTS** - 19 tests (pagination, date filtering, auth, validation) |
|
||||
| `src/app/history/page.test.tsx` | **EXISTS** - 26 tests (rendering, data loading, pagination, date filtering, styling) |
|
||||
| E2E tests | **NONE** |
|
||||
|
||||
### Critical Business Rules (from Spec)
|
||||
@@ -403,12 +404,12 @@ Full feature set for production use.
|
||||
- **Depends On:** P2.6
|
||||
- **Note:** DayCell is **COMPLETE**, MonthView needs grid implementation (~70% remaining)
|
||||
|
||||
### P2.12: History Page Implementation
|
||||
- [ ] View past training decisions and data
|
||||
### P2.12: History Page Implementation ✅ COMPLETE
|
||||
- [x] View past training decisions and data
|
||||
- **Files:**
|
||||
- `src/app/history/page.tsx` - List view of DailyLogs with pagination
|
||||
- `src/app/history/page.tsx` - Data fetching, table display, pagination, date filtering
|
||||
- **Tests:**
|
||||
- E2E test: history loads, pagination works
|
||||
- `src/app/history/page.test.tsx` - 26 tests covering rendering, data loading, pagination, filtering, error handling
|
||||
- **Why:** Users want to review their training history
|
||||
- **Depends On:** P2.8
|
||||
|
||||
@@ -615,6 +616,7 @@ P2.14 Mini calendar
|
||||
- [x] **Login Page** - Email/password form with PocketBase auth, error handling, loading states, redirect, 14 tests (P1.6)
|
||||
- [x] **Dashboard Page** - Complete daily interface with /api/today integration, DecisionCard, DataPanel, NutritionPanel, OverrideToggles, 23 tests (P1.7)
|
||||
- [x] **Settings Page** - Form for cycleLength, notificationTime, timezone with validation, loading states, error handling, 24 tests (P2.9)
|
||||
- [x] **History Page** - Table view of DailyLogs with date filtering, pagination, decision styling, 26 tests (P2.12)
|
||||
|
||||
### Test Infrastructure
|
||||
- [x] **test-setup.ts** - Global test setup with @testing-library/jest-dom matchers and cleanup
|
||||
|
||||
Reference in New Issue
Block a user