You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The public gallery page displays all visible restaurant photos in a responsive masonry-style grid with optional category filtering. It fetches images from the backend and shows a lightbox when a photo is clicked.
Acceptance Criteria
Create frontend/app/(public)/gallery/page.tsx as a "use client" component
Export metadata from a sibling layout.tsx or use Next.js generateMetadata with title: "Gallery | The Lighted" and appropriate description
Fetch gallery images using useGallery(selectedCategory) hook
Category filter pills: All, Food, Ambience, Events, Staff, Behind the Scenes, Specials — clicking filters the grid
Responsive image grid: 1 col on mobile, 2 cols on tablet, 3 cols on desktop using CSS grid
Each image: Next.js <Image> with fill, object-cover, rounded corners; hover reveals the alt text in an overlay
Clicking an image opens a simple lightbox modal: dark overlay, full-size image, previous/next arrows, close button
Labels:
frontendpublicgalleryArea:
frontend/app/(public)/gallery/page.tsxDifficulty: Intermediate
Description
The public gallery page displays all visible restaurant photos in a responsive masonry-style grid with optional category filtering. It fetches images from the backend and shows a lightbox when a photo is clicked.
Acceptance Criteria
frontend/app/(public)/gallery/page.tsxas a"use client"componentmetadatafrom a siblinglayout.tsxor use Next.jsgenerateMetadatawithtitle: "Gallery | The Lighted"and appropriate descriptionuseGallery(selectedCategory)hookAll,Food,Ambience,Events,Staff,Behind the Scenes,Specials— clicking filters the grid<Image>withfill,object-cover, rounded corners; hover reveals thealttext in an overlayArrowLeft,ArrowRight,Escape)