Implement Calendar page with MonthView and ICS subscription (P2.11)
- Complete MonthView component with calendar grid, DayCell integration, navigation controls (prev/next month, Today button), and phase legend - Implement Calendar page with MonthView, month navigation state, ICS subscription section with URL display, copy, and token regeneration - Add 21 tests for MonthView component (calendar grid, phase colors, navigation, legend, cycle rollover) - Add 23 tests for Calendar page (rendering, navigation, ICS subscription, token regeneration, error handling) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -48,7 +48,7 @@ This file is maintained by Ralph. Run `./ralph-sandbox.sh plan 3` to generate ta
|
||||
| Login (`/login`) | **COMPLETE** | Email/password form with auth, error handling, loading states |
|
||||
| Settings (`/settings`) | **COMPLETE** | Form with cycleLength, notificationTime, timezone |
|
||||
| Settings/Garmin (`/settings/garmin`) | **COMPLETE** | Token management UI, connection status, disconnect functionality, 27 tests |
|
||||
| Calendar (`/calendar`) | Placeholder | Needs MonthView integration |
|
||||
| Calendar (`/calendar`) | **COMPLETE** | MonthView with navigation, ICS subscription section, token regeneration, 23 tests |
|
||||
| History (`/history`) | **COMPLETE** | Table view with date filtering, pagination, decision styling, 26 tests |
|
||||
| Plan (`/plan`) | Placeholder | Needs phase details display |
|
||||
|
||||
@@ -61,7 +61,7 @@ This file is maintained by Ralph. Run `./ralph-sandbox.sh plan 3` to generate ta
|
||||
| `OverrideToggles` | **COMPLETE** | Toggle buttons with callbacks |
|
||||
| `DayCell` | **COMPLETE** | Phase-colored day with click handler |
|
||||
| `MiniCalendar` | **Partial (~30%)** | Has header only, **MISSING: calendar grid** |
|
||||
| `MonthView` | **Partial (~30%)** | Has header only, **MISSING: calendar grid + DayCell integration** |
|
||||
| `MonthView` | **COMPLETE** | Calendar grid with DayCell integration, navigation controls, phase legend |
|
||||
|
||||
### Test Coverage
|
||||
| Test File | Status |
|
||||
@@ -91,6 +91,8 @@ This file is maintained by Ralph. Run `./ralph-sandbox.sh plan 3` to generate ta
|
||||
| `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) |
|
||||
| `src/components/calendar/month-view.test.tsx` | **EXISTS** - 21 tests (calendar grid, phase colors, navigation, legend) |
|
||||
| `src/app/calendar/page.test.tsx` | **EXISTS** - 23 tests (rendering, navigation, ICS subscription, token regeneration) |
|
||||
| E2E tests | **NONE** |
|
||||
|
||||
### Critical Business Rules (from Spec)
|
||||
@@ -401,16 +403,16 @@ Full feature set for production use.
|
||||
- **Why:** Users need to manage their Garmin connection
|
||||
- **Depends On:** P0.4, P2.2, P2.3
|
||||
|
||||
### P2.11: Calendar Page Implementation
|
||||
- [ ] In-app calendar with phase visualization
|
||||
### P2.11: Calendar Page Implementation ✅ COMPLETE
|
||||
- [x] In-app calendar with phase visualization
|
||||
- **Files:**
|
||||
- `src/app/calendar/page.tsx` - Month view with navigation
|
||||
- `src/components/calendar/month-view.tsx` - **Complete calendar grid using DayCell**
|
||||
- `src/app/calendar/page.tsx` - Month view with navigation, ICS subscription section with URL display, copy button, token regeneration
|
||||
- `src/components/calendar/month-view.tsx` - Complete calendar grid with DayCell integration, navigation controls, phase legend
|
||||
- **Tests:**
|
||||
- E2E test: navigation works, phases displayed correctly
|
||||
- `src/components/calendar/month-view.test.tsx` - 21 tests covering calendar grid, phase colors, navigation, legend
|
||||
- `src/app/calendar/page.test.tsx` - 23 tests covering rendering, navigation, ICS subscription, token regeneration
|
||||
- **Why:** Planning ahead is a key user need
|
||||
- **Depends On:** P2.6
|
||||
- **Note:** DayCell is **COMPLETE**, MonthView needs grid implementation (~70% remaining)
|
||||
|
||||
### P2.12: History Page Implementation ✅ COMPLETE
|
||||
- [x] View past training decisions and data
|
||||
@@ -602,6 +604,7 @@ P2.14 Mini calendar
|
||||
- [x] **NutritionPanel** - Shows seeds, carbs, keto guidance
|
||||
- [x] **OverrideToggles** - Toggle buttons for flare/stress/sleep/pms
|
||||
- [x] **DayCell** - Phase-colored calendar day cell with click handler
|
||||
- [x] **MonthView** - Calendar grid with DayCell integration, navigation controls (prev/next month, Today button), phase legend, 21 tests
|
||||
|
||||
### API Routes
|
||||
- [x] **GET /api/user** - Returns authenticated user profile, 4 tests (P0.4)
|
||||
@@ -625,6 +628,7 @@ P2.14 Mini calendar
|
||||
- [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, 28 tests (P2.9)
|
||||
- [x] **Settings/Garmin Page** - Token input form, connection status, expiry warnings, disconnect functionality, 27 tests (P2.10)
|
||||
- [x] **Calendar Page** - MonthView with navigation controls, ICS subscription section with URL display, copy button, token regeneration, 23 tests (P2.11)
|
||||
- [x] **History Page** - Table view of DailyLogs with date filtering, pagination, decision styling, 26 tests (P2.12)
|
||||
|
||||
### Test Infrastructure
|
||||
|
||||
Reference in New Issue
Block a user