Commit Graph

6 Commits

Author SHA1 Message Date
Paul Huliganga 4af20eaf91 feat(ui): add design tokens and visual style guide (T02) 2026-03-26 17:49:34 -04:00
Paul Huliganga 012a5362bb feat(ui): add subtle motion and icon polish 2026-03-26 16:36:34 -04:00
Paul Huliganga ca11d9d878 feat(frontend): refresh homepage and recipe list visuals 2026-03-26 16:28:01 -04:00
Paul Huliganga b7e7e9955e UI polish: Introduce visual theme tokens, refreshed RecipeList page & cards, improved empty/loading states 2026-03-25 18:25:37 -04:00
Paul Huliganga dbdbcf43fa feat(tags): implement tag management with create, assign, and display functionality
Backend:
- Add Tag type definitions (Tag, CreateTagInput, UpdateTagInput)
- Implement TagRepository with CRUD and recipe assignment methods
- Implement TagService with business logic and validation
- Create tag API routes (GET, POST, PUT, DELETE /api/tags)
- Add recipe-tag assignment endpoints (POST/DELETE /api/tags/recipes/:id/tags)
- Write 18 integration tests for tag functionality (all passing)
- Mount tag routes in main Express app

Frontend:
- Extend API client with tag CRUD and assignment methods
- Create useTags hook for tag state management
- Create TagSelector component for tag selection with inline tag creation
- Update RecipeForm to accept initialTags and pass selected tags to onSubmit
- Update RecipeDetailPage to fetch, display, and manage recipe tags
- Update RecipeCard to display tags with custom colors
- Add tag filter UI to RecipeListPage (note: backend filtering pending)
- Display tags in recipe detail view with color styling

Testing:
- All 34 backend tests passing (16 recipe + 18 tag tests)
- Frontend builds successfully with TypeScript strict mode
- Tag assignment and removal working end-to-end

Note: Tag filtering in recipe list shows UI but doesn't filter results yet.
Backend support for tag-based filtering can be added in future iteration.
2026-03-24 04:02:51 -04:00
Paul Huliganga c6c5d0e3f4 feat(frontend): implement recipe list page with search and pagination
- Create API client service (src/services/api.ts) with all CRUD operations
- Create useRecipes hook for data fetching with search and pagination
- Create RecipeCard component for displaying individual recipes
- Implement RecipeListPage with search bar, empty state, and error handling
- Add grid layout with responsive design (1-3 columns)
- Implement 'Load More' button for pagination
- Add recipe metadata display (servings, time, last cooked)
- Update TODO.md to mark task as complete
2026-03-24 03:12:27 -04:00