Skip to content

Issue #98: Frontend — Public Contact Page #251

@wumibals

Description

@wumibals

Labels: frontend public contact
Area: frontend/app/(public)/contact/page.tsx
Difficulty: Intermediate

Description

The contact page gives visitors multiple ways to reach the restaurant: a contact form, a Google Maps embed, phone/email/address info, and opening hours. It submits the form to POST /contact and shows a success message on completion.

Acceptance Criteria

  • Create frontend/app/(public)/contact/page.tsx as a server component
  • Export metadata: { title: "Contact Us | The Lighted" }
  • Layout: two columns on lg+, single column on mobile
    • Left column: <ContactForm /> pre-built component from @/components/features/ContactForm
    • Right column: Contact info card (phone, email, address with Lucide icons) + <OpeningHours /> + Google Maps <iframe> embed using RESTAURANT_INFO.coordinates
  • Google Maps <iframe> uses https://maps.google.com/maps?q={lat},{lng}&output=embed with loading="lazy", allowFullScreen
  • All contact details sourced from RESTAURANT_INFO
  • Page-level hero section: title "Get In Touch", subtitle, breadcrumb

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions