feat: Add item to wishlist with natural language description (#21)#40
feat: Add item to wishlist with natural language description (#21)#40tylergannon wants to merge 5 commits into
Conversation
- Add WishlistItem type and parseWishlistItem() helper (lib/wishlist.ts) - Add Supabase client wrapper (lib/supabase.ts) - Add /wishlist route with WishlistPage component - Text input: 'Describe what you want...' - Optimistic add with Supabase persistence - Empty state, validation error on blank submit - Items listed by name (derived from first sentence of description) - Configure vitest with jsdom + @testing-library/svelte vite plugin for Svelte 5 - 16 tests passing (8 unit, 8 component) - Add Supabase migration documenting wishlist_items schema
- Add migration 20260227000000_add_status_to_wishlist_items.sql to add status column (want/purchased/packed) with check constraint to live DB - Applied migration to live Supabase database (verified schema) - Add webapp/bun.lock lockfile - All 24 tests pass (8 unit + 16 component)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Code Review Summary✅ Overall: Approved — implementation is solid and well-testedThis PR cleanly implements issue #21 (add item to wishlist with natural language description). All 24 tests pass and What was implemented
Highlights 👍
Minor observations (non-blocking)
Test coverage summary
The core requirement of issue #21 is fully satisfied. The natural language description is accepted, parsed, stored, and rendered correctly. The minor observations above are suggestions for future improvements, not blockers. |
Summary
Closes #21
Implements the ability to add wishlist items using a natural language description.
Changes
lib/wishlist.tsWishlistItemtype with fields:id,name,description,status,trip_id,created_atparseWishlistItem()helper that derives anamefrom the first sentence of the natural language description (truncated to 60 chars)addWishlistItem(),updateWishlistItem(),deleteWishlistItem(),getWishlistItems()routes/wishlist/WishlistPage.svelteDescribe what you want...) for natural language entryDB Migration
20260227000000_add_status_to_wishlist_items.sql— adds thestatuscolumn to thewishlist_itemstableTests