Compare commits
3 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 7eeed7cc7a | |||
|
|
f3d4b3130a | ||
| 743e2a01eb |
@@ -1,221 +1,35 @@
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import { Coffee, Sun, Users } from "lucide-react";
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import SocialProofSection from './HomePage/sections/SocialProof';
|
||||
import StorySection from './HomePage/sections/Story';
|
||||
import MenuSection from './HomePage/sections/Menu';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import ExperienceSection from './HomePage/sections/Experience';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import HoursSection from './HomePage/sections/Hours';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitMediaGrid
|
||||
tag="Louisiana's Most Beloved Burger Stand"
|
||||
title="One Bite. You'll Understand."
|
||||
description="Handcrafted burgers, legendary boiled peanuts, and Southern comfort food served fresh since day one."
|
||||
primaryButton={{
|
||||
text: "See Our Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Get Directions",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/freshly-baked-burger-bun-with-sesame-sprinkles_140725-8727.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/uncooked-pasta-scattered-dark-surface_114579-37378.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="★★★★★"
|
||||
title="500+ 5-Star Reviews"
|
||||
description="Rated Best Burger in Louisiana by Local Guides"
|
||||
names={[
|
||||
"Local Guide Approved",
|
||||
"Louisiana's Finest",
|
||||
"Award Winning",
|
||||
"Authentic Southern",
|
||||
"Legendary Food",
|
||||
"Fresh Ingredients",
|
||||
"Daily Specials",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialProofSection />
|
||||
|
||||
<div id="story" data-section="story">
|
||||
<SectionErrorBoundary name="story">
|
||||
<AboutTestimonial
|
||||
tag="Our Story"
|
||||
quote="Scivicque's Cafe has been feeding Louisiana one perfect burger at a time. No gimmicks. No shortcuts. Just real, home-cooked food made with care."
|
||||
author="The Scivicque Family"
|
||||
role="Founders"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/chicken-burger-served-with-fries-basket-bowl-mayonnaise-ketchup_140725-2490.jpg?_wi=1"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<StorySection />
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="The Legend"
|
||||
title="What We're Known For"
|
||||
description="Handcrafted comfort that turns strangers into regulars."
|
||||
primaryButton={{
|
||||
text: "View Full Menu",
|
||||
href: "#",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
title: "The Burgers",
|
||||
description: "Voted best in Louisiana. Bacon cheeseburger. Double patty. Your call.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-burger-with-beef-tomato-bell-peppers-lettuce-pickled-cucumber_140725-5733.jpg",
|
||||
},
|
||||
{
|
||||
title: "Boiled Peanuts",
|
||||
description: "Perfectly seasoned. Not one bad peanut in the bag. Ever.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/white-bowl-full-various-shelled-nuts-stone-background_114579-74690.jpg",
|
||||
},
|
||||
{
|
||||
title: "Po-Boys",
|
||||
description: "Shrimp. Roast beef. Fried to order. Southern-built.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crispy-fried-shrimps-served-with-boiled-vegetables_140725-888.jpg",
|
||||
},
|
||||
{
|
||||
title: "Sno-Balls",
|
||||
description: "Stacked with syrup. A Louisiana summer essential.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/refreshing-ice-cream-ready-be-served_23-2148513996.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fried Sides",
|
||||
description: "Okra, mushrooms, tenders, fries. Crispy every time.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/arrangement-baked-mushrooms-dried-leaves_23-2148656361.jpg",
|
||||
},
|
||||
{
|
||||
title: "Nachos & Extras",
|
||||
description: "The kind of nachos locals come back for specifically.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tasty-delicious-mexican-yellow-nachos-chips-brown-plate_23-2148042536.jpg",
|
||||
},
|
||||
{
|
||||
title: "Cold Drinks",
|
||||
description: "Sweet tea and soda to beat the Louisiana heat.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-delicious-cocktail_52683-107586.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MenuSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="Reviews"
|
||||
title="Don't Take Our Word For It"
|
||||
description="Loved by locals, remembered by visitors."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Dennis P.",
|
||||
role: "Local Guide",
|
||||
quote: "Best hamburger in LA. And great price. Will be back.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/closeup-content-pretty-businesswoman-glasses_1262-1740.jpg",
|
||||
},
|
||||
{
|
||||
name: "Chrystal C.",
|
||||
role: "Customer",
|
||||
quote: "The BEST hamburgers I've ever eaten. Best boiled peanuts too! Fast and delicious!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-young-man-posing-studio_23-2149411430.jpg",
|
||||
},
|
||||
{
|
||||
name: "Ashley T.",
|
||||
role: "Customer",
|
||||
quote: "We love this burger stand! Home cooked food! I give them 10/10.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-brunette-woman-with-curly-hair_273609-14378.jpg",
|
||||
},
|
||||
{
|
||||
name: "Vicious Peaches",
|
||||
role: "Local Guide",
|
||||
quote: "A must-stop destination anytime the grandkids are here. Always so generous.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-white-portrait-woman-showing-vulnerability-self-acceptance_23-2151237540.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elizabeth M.",
|
||||
role: "Customer",
|
||||
quote: "The best fried mushrooms and shrimp po-boys I've ever had. Everything is amazing.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-mature-woman-with-glasses_53876-146178.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="experience" data-section="experience">
|
||||
<SectionErrorBoundary name="experience">
|
||||
<MetricsIconCards
|
||||
tag="Come As You Are"
|
||||
title="Cold Drinks. Hot Food. Front Porch Vibes."
|
||||
description="Whether you're grabbing lunch or stopping on a first date — Scivicque's is what you needed."
|
||||
metrics={[
|
||||
{
|
||||
icon: Coffee,
|
||||
title: "Walk-Up Ordering",
|
||||
value: "Easy",
|
||||
},
|
||||
{
|
||||
icon: Sun,
|
||||
title: "Outdoor Seating",
|
||||
value: "Open",
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Family Friendly",
|
||||
value: "Always",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ExperienceSection />
|
||||
<HoursSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Visit Us"
|
||||
text="Come Hungry. Leave Happy. Find us in Louisiana. No reservations needed."
|
||||
primaryButton={{
|
||||
text: "Get Directions",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Full Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "contact" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ContactSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Visit Us"
|
||||
text="Come Hungry. Leave Happy. Find us in Louisiana. No reservations needed."
|
||||
primaryButton={{
|
||||
text: "Get Directions",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Full Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
38
src/pages/HomePage/sections/Experience.tsx
Normal file
38
src/pages/HomePage/sections/Experience.tsx
Normal file
@@ -0,0 +1,38 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "experience" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
|
||||
import { Coffee, Sun, Users } from "lucide-react";
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ExperienceSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="experience" data-section="experience">
|
||||
<SectionErrorBoundary name="experience">
|
||||
<MetricsIconCards
|
||||
tag="Come As You Are"
|
||||
title="Cold Drinks. Hot Food. Front Porch Vibes."
|
||||
description="Whether you're grabbing lunch or stopping on a first date — Scivicque's is what you needed."
|
||||
metrics={[
|
||||
{
|
||||
icon: Coffee,
|
||||
title: "Walk-Up Ordering",
|
||||
value: "Easy",
|
||||
},
|
||||
{
|
||||
icon: Sun,
|
||||
title: "Outdoor Seating",
|
||||
value: "Open",
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Family Friendly",
|
||||
value: "Always",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
36
src/pages/HomePage/sections/Hero.tsx
Normal file
36
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitMediaGrid
|
||||
tag="Louisiana's Most Beloved Burger Stand"
|
||||
title="One Bite. You'll Understand."
|
||||
description="Handcrafted burgers, legendary boiled peanuts, and Southern comfort food served fresh since day one."
|
||||
primaryButton={{
|
||||
text: "See Our Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Get Directions",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/freshly-baked-burger-bun-with-sesame-sprinkles_140725-8727.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/uncooked-pasta-scattered-dark-surface_114579-37378.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
80
src/pages/HomePage/sections/Hours.tsx
Normal file
80
src/pages/HomePage/sections/Hours.tsx
Normal file
@@ -0,0 +1,80 @@
|
||||
import React from 'react';
|
||||
import { Clock, MapPin, Info } from 'lucide-react';
|
||||
import ScrollReveal from '@/components/ui/ScrollReveal';
|
||||
import TextAnimation from '@/components/ui/TextAnimation';
|
||||
import Button from '@/components/ui/Button';
|
||||
import Tag from '@/components/ui/Tag';
|
||||
|
||||
export default function HoursSection() {
|
||||
return (
|
||||
<section data-webild-section="hours" id="hours" className="relative w-full py-24 bg-background">
|
||||
<div className="w-content-width mx-auto px-6">
|
||||
<div className="flex flex-col items-center text-center mb-16">
|
||||
<ScrollReveal variant="fade">
|
||||
<Tag text="Visit Us" className="mb-6" />
|
||||
</ScrollReveal>
|
||||
<TextAnimation
|
||||
text="Plan Your Visit"
|
||||
variant="fade-blur"
|
||||
tag="h2"
|
||||
gradientText={false}
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-6 font-serif uppercase tracking-wide"
|
||||
/>
|
||||
<ScrollReveal variant="fade" delay={0.1}>
|
||||
<p className="text-lg text-muted-foreground max-w-2xl mx-auto">
|
||||
Walk-up ordering only. First come, first served. No reservations needed.
|
||||
</p>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
<ScrollReveal variant="fade" delay={0.2} className="h-full">
|
||||
<div className="card h-full p-8 flex flex-col items-center text-center rounded-theme border border-border/50">
|
||||
<div className="w-12 h-12 rounded-full bg-primary-cta/10 flex items-center justify-center mb-6 text-primary-cta">
|
||||
<Clock className="w-6 h-6" />
|
||||
</div>
|
||||
<h3 className="text-xl font-bold text-foreground mb-4 font-serif">Operating Hours</h3>
|
||||
<div className="text-muted-foreground space-y-2">
|
||||
<p>Monday - Thursday: 11:00 AM - 8:00 PM</p>
|
||||
<p>Friday - Saturday: 11:00 AM - 9:00 PM</p>
|
||||
<p className="text-primary-cta font-medium mt-2">Sunday: Closed</p>
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
|
||||
<ScrollReveal variant="fade" delay={0.3} className="h-full">
|
||||
<div className="card h-full p-8 flex flex-col items-center text-center rounded-theme border border-border/50">
|
||||
<div className="w-12 h-12 rounded-full bg-primary-cta/10 flex items-center justify-center mb-6 text-primary-cta">
|
||||
<MapPin className="w-6 h-6" />
|
||||
</div>
|
||||
<h3 className="text-xl font-bold text-foreground mb-4 font-serif">Location</h3>
|
||||
<div className="text-muted-foreground space-y-2">
|
||||
<p>123 Main St, Louisiana</p>
|
||||
<p>Look for the line.</p>
|
||||
<p>Plenty of parking available.</p>
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
|
||||
<ScrollReveal variant="fade" delay={0.4} className="h-full">
|
||||
<div className="card h-full p-8 flex flex-col items-center text-center rounded-theme border border-border/50">
|
||||
<div className="w-12 h-12 rounded-full bg-primary-cta/10 flex items-center justify-center mb-6 text-primary-cta">
|
||||
<Info className="w-6 h-6" />
|
||||
</div>
|
||||
<h3 className="text-xl font-bold text-foreground mb-4 font-serif">How It Works</h3>
|
||||
<div className="text-muted-foreground space-y-2">
|
||||
<p>Walk-up ordering at the window.</p>
|
||||
<p>Grab a picnic table or take it to go.</p>
|
||||
<p>No call-ahead orders.</p>
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
|
||||
<ScrollReveal variant="fade" delay={0.5} className="mt-16 flex justify-center">
|
||||
<Button text="Get Directions" href="#contact" variant="primary" />
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
68
src/pages/HomePage/sections/Menu.tsx
Normal file
68
src/pages/HomePage/sections/Menu.tsx
Normal file
@@ -0,0 +1,68 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "menu" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MenuSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="The Legend"
|
||||
title="What We're Known For"
|
||||
description="Handcrafted comfort that turns strangers into regulars."
|
||||
primaryButton={{
|
||||
text: "View Full Menu",
|
||||
href: "#",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
title: "The Burgers",
|
||||
description: "Voted best in Louisiana. Bacon cheeseburger. Double patty. Your call.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-burger-with-beef-tomato-bell-peppers-lettuce-pickled-cucumber_140725-5733.jpg",
|
||||
},
|
||||
{
|
||||
title: "Boiled Peanuts",
|
||||
description: "Perfectly seasoned. Not one bad peanut in the bag. Ever.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/white-bowl-full-various-shelled-nuts-stone-background_114579-74690.jpg",
|
||||
},
|
||||
{
|
||||
title: "Po-Boys",
|
||||
description: "Shrimp. Roast beef. Fried to order. Southern-built.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crispy-fried-shrimps-served-with-boiled-vegetables_140725-888.jpg",
|
||||
},
|
||||
{
|
||||
title: "Sno-Balls",
|
||||
description: "Stacked with syrup. A Louisiana summer essential.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/refreshing-ice-cream-ready-be-served_23-2148513996.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fried Sides",
|
||||
description: "Okra, mushrooms, tenders, fries. Crispy every time.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/arrangement-baked-mushrooms-dried-leaves_23-2148656361.jpg",
|
||||
},
|
||||
{
|
||||
title: "Nachos & Extras",
|
||||
description: "The kind of nachos locals come back for specifically.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tasty-delicious-mexican-yellow-nachos-chips-brown-plate_23-2148042536.jpg",
|
||||
},
|
||||
{
|
||||
title: "Cold Drinks",
|
||||
description: "Sweet tea and soda to beat the Louisiana heat.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-delicious-cocktail_52683-107586.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/SocialProof.tsx
Normal file
29
src/pages/HomePage/sections/SocialProof.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "social-proof" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialProofSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="★★★★★"
|
||||
title="500+ 5-Star Reviews"
|
||||
description="Rated Best Burger in Louisiana by Local Guides"
|
||||
names={[
|
||||
"Local Guide Approved",
|
||||
"Louisiana's Finest",
|
||||
"Award Winning",
|
||||
"Authentic Southern",
|
||||
"Legendary Food",
|
||||
"Fresh Ingredients",
|
||||
"Daily Specials",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Story.tsx
Normal file
22
src/pages/HomePage/sections/Story.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "story" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function StorySection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="story" data-section="story">
|
||||
<SectionErrorBoundary name="story">
|
||||
<AboutTestimonial
|
||||
tag="Our Story"
|
||||
quote="Scivicque's Cafe has been feeding Louisiana one perfect burger at a time. No gimmicks. No shortcuts. Just real, home-cooked food made with care."
|
||||
author="The Scivicque Family"
|
||||
role="Founders"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/chicken-burger-served-with-fries-basket-bowl-mayonnaise-ketchup_140725-2490.jpg?_wi=1"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Testimonials.tsx
Normal file
57
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="Reviews"
|
||||
title="Don't Take Our Word For It"
|
||||
description="Loved by locals, remembered by visitors."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Dennis P.",
|
||||
role: "Local Guide",
|
||||
quote: "Best hamburger in LA. And great price. Will be back.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/closeup-content-pretty-businesswoman-glasses_1262-1740.jpg",
|
||||
},
|
||||
{
|
||||
name: "Chrystal C.",
|
||||
role: "Customer",
|
||||
quote: "The BEST hamburgers I've ever eaten. Best boiled peanuts too! Fast and delicious!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-young-man-posing-studio_23-2149411430.jpg",
|
||||
},
|
||||
{
|
||||
name: "Ashley T.",
|
||||
role: "Customer",
|
||||
quote: "We love this burger stand! Home cooked food! I give them 10/10.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-brunette-woman-with-curly-hair_273609-14378.jpg",
|
||||
},
|
||||
{
|
||||
name: "Vicious Peaches",
|
||||
role: "Local Guide",
|
||||
quote: "A must-stop destination anytime the grandkids are here. Always so generous.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-white-portrait-woman-showing-vulnerability-self-acceptance_23-2151237540.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elizabeth M.",
|
||||
role: "Customer",
|
||||
quote: "The best fried mushrooms and shrimp po-boys I've ever had. Everything is amazing.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-mature-woman-with-glasses_53876-146178.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user