Replace stale ownership/list labels across pages and components, add
lib/collection-vocabulary.js as the single copy source, document the
taxonomy in AGENTS.md, and gate retired strings in CI.
Co-authored-by: Cursor <cursoragent@cursor.com>
🐛 Root Cause:
- Collection detail page was not sending auth token in API requests
- This caused the API to fallback to admin user authentication
- Bob's 'All My Cards' collection was inaccessible to admin user
✅ Solution:
- Added Authorization header to fetchCollectionData() function
- Added Authorization header to collection cards fetch request
- Both requests now properly authenticate as the logged-in user
🔍 Debug Results:
- Token verification was working correctly for other API calls
- Only the main collection fetch was missing authentication
- This explains the 404 error for system collections
The 'All My Cards' collection should now be accessible! 🚀
🎯 Edit/Delete Functionality:
- Edit/Delete buttons now visible in collection header
- Hidden for system collections (All My Cards)
- Only shown for collection owners
- Proper permission checks in place
🃏 Consistent Card Display:
- Replaced basic card tiles with full CardItem components
- Same hover effects and interactions as /cards page
- Selection, favorites, and action buttons work
- Responsive grid layout (2-7 columns based on screen size)
- Proper card interactions (favorite, select, add to collection/deck)
🔒 System Collection Styling:
- Added prominent SYSTEM badge in collection header
- Informative tooltip explaining auto-sync behavior
- Consistent styling with collections list page
- Clear visual distinction from regular collections
🎨 UI/UX Improvements:
- Better responsive grid layout for cards
- Proper state management for card interactions
- Consistent theming and styling
- Enhanced user feedback and visual hierarchy
Cards in collections now have the same rich interactions as the main cards page! 🚀
🐛 Fixed Authentication Problems:
- Removed hardcoded mock admin user from collection detail page
- Removed hardcoded mock user from collections page
- Created proper useAuth hook to get current authenticated user
- Added proper authentication checks and redirects
🔧 Authentication Flow Fixes:
- Collection detail page now uses actual logged-in user (Alice, Bob, etc.)
- Proper permission checks based on real user identity
- Edit/Delete buttons now show correctly based on actual ownership
- Authentication loading states handled properly
🛠️ Technical Improvements:
- Created lib/use-auth.js hook for consistent auth handling
- Added auth loading states to prevent flash of wrong content
- Proper redirects to login page when not authenticated
- Fixed token retrieval from localStorage ('auth_token')
✅ User Experience:
- Alice and Bob now see their own collections correctly
- Edit/Delete permissions work based on actual collection ownership
- No more authentication errors when editing owned collections
- Consistent user identity across all pages
The authentication system now works correctly with the demo users! 🎯
🔗 Automatic ID to Slug Redirects:
- Collection detail page now automatically redirects from ID URLs to slug URLs
- Maintains backwards compatibility for all existing links
- SEO-friendly permanent redirects using router.replace()
✏️ Collection Edit/Delete Functionality:
- Added edit modal directly in collection detail page
- Added delete confirmation modal with proper warnings
- Edit functionality updates name, description, image, and visibility
- Automatic slug regeneration when collection name changes
- Proper permission checks (only owners can edit/delete)
🛠️ API Route Restructuring:
- Renamed all [id] routes to [identifier] to resolve Next.js conflicts
- Updated all APIs to handle both slugs and numeric IDs
- Fixed 'different slug names for same dynamic path' error
- Consistent identifier handling across all endpoints
📁 Updated API Endpoints:
- /api/collections/[identifier] - Main collection CRUD
- /api/collections/[identifier]/cards - Collection cards management
- /api/collections/[identifier]/thumbnails - Thumbnail generation
- /api/collections/[identifier]/permissions - Permission management
- /api/collections/[identifier]/activity - Activity tracking
🎨 UI/UX Improvements:
- Edit and Delete buttons only show for collection owners
- Clean modal interfaces with proper form validation
- Loading states and error handling
- Confirmation dialogs for destructive actions
- Consistent styling with fire theme
🔧 Technical Enhancements:
- Smart identifier detection (slug vs numeric ID)
- Proper error handling and user feedback
- Database transaction safety for updates
- Automatic collection timestamp updates
- Permission-based access control
Now users can seamlessly edit collections and get beautiful SEO-friendly URLs! 🚀✨