diff --git a/Review/sprint3-verification.md b/Review/sprint3-verification.md new file mode 100644 index 0000000..0428ab7 --- /dev/null +++ b/Review/sprint3-verification.md @@ -0,0 +1,40 @@ +# Sprint 3 — Verification Log + +**Date:** 2026-06-03 +**Scope:** Three P2s (B12, B13, B14) + a11y sweep (S3.5) + ErrorBoundary confirmation (S3.4 — no code change). +**Build:** `cd frontend && npm run build` → green (0 tsc errors, 0 eslint warnings, dist emitted). + +## Files changed + +| File | Change | +|---|---| +| `frontend/src/lib/toast.ts` → `toast.tsx` | New `showToast.undo(message, onUndo, ms=5000)` helper. Renamed to `.tsx` for JSX support. | +| `frontend/src/pages/Dashboard.tsx` | B12: `handleDelete` captures full `MealPlanItem`; on undo calls `meals.generateItem(planId, dayOfWeek, mealType)`. Status Badge gets explicit `aria-label`. | +| `frontend/src/pages/Pantry.tsx` | B12: `handleRemove` is fully reversible; calls `pantry.add` with original `ingredient_id`/`quantity`/`unit` on undo. New `removeId` state for per-row loading. | +| `frontend/src/App.tsx` | B13: nav `whitespace-nowrap` + `px-2 sm:px-3`. S3.5: `aria-current="page"` on active link; `