New Files
Database Migrations
supabase/migrations/20260117000000_add_photo_album_likes.sql- Photo and album likes tables migrationsupabase/migrations/20260117100000_add_likes_count_columns.sql- Likes count columns migration
Components
src/components/shared/LikeButton.tsx- Like button component with heart iconsrc/components/shared/LikeButton.module.css- Styles for like buttonsrc/components/shared/CardLikes.tsx- Component for displaying like counts on cardssrc/components/shared/DetailLikesSection.tsx- Component for showing full list of likerssrc/components/shared/LikerAvatars.tsx- Component for displaying avatars of users who likedsrc/components/shared/LikesSection.tsx- Likes section wrapper componentsrc/components/shared/Popover.tsx- Popover component for likes detail viewsrc/components/shared/TagsSection.tsx- Component for displaying tags on photo/album detail pagessrc/components/shared/TagShape.tsx- SVG component for tag pointed left edge (extracted from Tag.tsx)src/components/gallery/PhotosPaginated.tsx- Client component for infinite scroll photossrc/components/gallery/AlbumsPaginated.tsx- Client component for infinite scroll albums
Pages
src/app/gallery/photos/page.tsx- Dedicated page for all recent photos with paginationsrc/app/gallery/recent-likes/page.tsx- Dedicated page for recently liked photos with paginationsrc/app/gallery/albums/page.tsx- Dedicated page for all albums with pagination
API Routes
src/app/api/gallery/photos/route.ts- API endpoint for paginated recent photossrc/app/api/gallery/recent-likes/route.ts- API endpoint for paginated recently liked photossrc/app/api/gallery/albums/route.ts- API endpoint for paginated albums
Data Layer
src/lib/data/likes.ts- Server-side likes data fetching functionssrc/lib/actions/likes.ts- Server actions for liking/unliking photos and albums
Hooks
src/hooks/useLikes.ts- Client-side hooks for likes functionalitysrc/hooks/useAuthPrompt.tsx- Hook for authentication prompts
Icons
public/icons/heart.svg- Heart icon for unliked statepublic/icons/heart-filled.svg- Heart icon for liked state
Configuration
.vscode/settings.json- Switched to ESLint for formatting (removed Prettier)eslint.config.mjs- Added JSX formatting rules for props on new linespackage.json- Removed Prettier
Modified Files
Onboarding
src/app/onboarding/OnboardingClient.tsx- Added interests input field, test mode support, increased form width
Account Settings
src/app/account/page.tsx- Updated to support 10 interests, integrated popular interests dropdown
Components
src/components/shared/InterestInput.tsx- Updated to show popular interests dropdown when focusedsrc/components/shared/ProfileStatsBadges.tsx- Added likes received badgesrc/components/shared/MemberCard.tsx- Added "joined X ago" badgesrc/components/shared/Tag.tsx- Refactored: extracted SVG to TagShape, use CSS custom properties, simplified layoutsrc/components/photo/JustifiedPhotoGrid.tsx- Fixed attribution display on profile pagessrc/components/photo/PhotoPageContent.tsx- Added likes functionality and tags displaysrc/components/album/AlbumCard.tsx- Added likes functionalitysrc/components/events/EventImage.tsx- Fixed prop types to handle href internally
Gallery
src/app/gallery/page.tsx- Added "Recently liked" section, reduced initial display to 10 items, added "View all" buttonssrc/lib/data/gallery.ts- AddedgetRecentlyLikedPhotosfunction
Profile Pages
src/app/[nickname]/page.tsx- Fixed attribution display in JustifiedPhotoGridsrc/app/[nickname]/album/[albumSlug]/page.tsx- Added likes functionalitysrc/app/[nickname]/album/[albumSlug]/AlbumContent.tsx- Added likes functionality and tags display
Data Layer
src/lib/data/albums.ts- Updated to include likes_count and tagssrc/lib/data/index.ts- Added likes module exportsrc/lib/data/profiles.ts- Updated profile interests handling, added tags to photo queries
Types
src/types/photos.ts- Added PhotoLike typesrc/types/albums.ts- Added AlbumLike type
Database Types
src/database.types.ts- Regenerated to include photo_likes, album_likes tables and likes_count columns
Revalidation
src/app/actions/revalidate.ts- Added likes-related revalidation functions
Other
src/app/page.tsx- Minor updatessrc/app/members/page.tsx- Minor updatessrc/app/members/tag/[tag]/page.tsx- Minor updates- Various component styling and accessibility improvements