Bob AI: Added location section with map and address details for Hele
This commit is contained in:
@@ -1,237 +1,35 @@
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FeaturesArrowCards from '@/components/sections/features/FeaturesArrowCards';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroBillboardBrand from '@/components/sections/hero/HeroBillboardBrand';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
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 AboutSection from './HomePage/sections/About';
|
||||
import WhyChooseSection from './HomePage/sections/WhyChoose';
|
||||
import MenuSection from './HomePage/sections/Menu';
|
||||
import GallerySection from './HomePage/sections/Gallery';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import LocationSection from './HomePage/sections/Location';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardBrand
|
||||
brand="LUCKY KEBAB"
|
||||
description="Authentic, fresh, and locally loved. Experience the premium taste of tradition, prepared with care for our local community."
|
||||
primaryButton={{
|
||||
text: "Order Online",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/beef-meat-kebab-with-onions-sumakh-lavash-wooden-plate-served-with-wine-vegetables_114579-163.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="A Family Tradition of Freshness"
|
||||
primaryButton={{
|
||||
text: "Our Story",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="why-choose" data-section="why-choose">
|
||||
<SectionErrorBoundary name="why-choose">
|
||||
<MetricsFeatureCards
|
||||
tag="Why Lucky Kebab?"
|
||||
title="Quality That Speaks for Itself"
|
||||
description="We believe in generous servings, fresh ingredients, and the kind of service that makes you feel at home."
|
||||
metrics={[
|
||||
{
|
||||
value: "100%",
|
||||
title: "Fresh Ingredients",
|
||||
features: [
|
||||
"Locally sourced",
|
||||
"Premium meats",
|
||||
"Freshly chopped salads",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "5★",
|
||||
title: "Customer Service",
|
||||
features: [
|
||||
"Friendly staff",
|
||||
"Fast service",
|
||||
"Community focused",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "Daily",
|
||||
title: "Hand-Prepared",
|
||||
features: [
|
||||
"Toasted turkish bread",
|
||||
"Homemade sauces",
|
||||
"Hand-marinated meats",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<WhyChooseSection />
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Signature Menu"
|
||||
title="Freshness You Can Taste"
|
||||
description="From our succulent lamb kebabs to our famous hand-cut chips, discover the taste that everyone is talking about."
|
||||
items={[
|
||||
{
|
||||
title: "Lamb Kebab",
|
||||
description: "Slow-cooked, premium lamb, fresh salad, our secret sauce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-delicious-sweets-plate_23-2149192053.jpg",
|
||||
},
|
||||
{
|
||||
title: "Snack Pack",
|
||||
description: "The local favourite. Generous chips, cheese, and your choice of meat.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-mix-nuts-figs-plate_23-2148352341.jpg",
|
||||
},
|
||||
{
|
||||
title: "Toasted Pide",
|
||||
description: "Authentic, freshly toasted Turkish bread, warm and crispy.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/traditional-italian-mini-pizza-wooden-plate-marble-table_114579-82432.jpg",
|
||||
},
|
||||
{
|
||||
title: "Classic Beef Kebab",
|
||||
description: "High-quality beef with crispy salad and garlic yogurt sauce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-little-pipe-cookies-with-marmalade-white-surface_140725-61658.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fresh Cut Chips",
|
||||
description: "Double-cooked for the perfect crisp in every bite.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-tasty-ham-sandwiches-with-french-fries-dark-surface_179666-34646.jpg",
|
||||
},
|
||||
{
|
||||
title: "Turkish Delight",
|
||||
description: "The perfect sweet end to your meal.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/triangle-shaped-pastries-filled-with-cheese-wooden-board_114579-88842.jpg",
|
||||
},
|
||||
{
|
||||
title: "Family Combo",
|
||||
description: "Big servings designed for sharing with your loved ones.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/various-turkish-delights-dish-marble-background_114579-74572.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MenuSection />
|
||||
|
||||
<div id="gallery" data-section="gallery">
|
||||
<SectionErrorBoundary name="gallery">
|
||||
<FeaturesArrowCards
|
||||
tag="Inside Lucky Kebab"
|
||||
title="More Than Just Kebabs"
|
||||
description="See our clean, inviting shop and some of the local favourites."
|
||||
items={[
|
||||
{
|
||||
title: "Clean Inviting Shop",
|
||||
tags: [
|
||||
"Family Friendly",
|
||||
"Spotless",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/romantic-dining-table-setting-with-wine-glass-other_74190-7639.jpg",
|
||||
},
|
||||
{
|
||||
title: "Happy Local Customers",
|
||||
tags: [
|
||||
"Family",
|
||||
"Local Love",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/three-elegant-women-with-shopping-bags-city_1157-38858.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fresh Preparation",
|
||||
tags: [
|
||||
"Fresh",
|
||||
"Artisan",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pieces-fresh-homemade-sourdough-bread-slicing-artisan-bread-straw-lining-top-view_166373-3249.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<GallerySection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="What Locals Say"
|
||||
title="Loved By Our Community"
|
||||
description="We are proud to be a local favorite, serving up smiles and satisfaction every single day."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Local Resident",
|
||||
quote: "Hands down the best lamb kebab in the area. Always fresh, never greasy, and the staff are wonderful.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-smiling-brunette-asian-woman-sitting-with-graphic-pen-looking-happy-drawing_1258-199033.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael T.",
|
||||
role: "Loyal Customer",
|
||||
quote: "The Turkish bread is perfectly toasted every time. Excellent value and very generous servings.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-enjoying-croissant_1170-631.jpg",
|
||||
},
|
||||
{
|
||||
name: "The Anderson Family",
|
||||
role: "Family Diner",
|
||||
quote: "Our go-to place for a fast, delicious family meal. Very welcoming, clean, and quick service.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-family-havinf-dinner-together_23-2149117546.jpg",
|
||||
},
|
||||
{
|
||||
name: "David L.",
|
||||
role: "Professional",
|
||||
quote: "Consistent quality and fantastic customer service. It’s hard to find a place that really cares this much.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/elder-group-friends-partying_23-2150300153.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emma R.",
|
||||
role: "Student",
|
||||
quote: "Fresh ingredients and fast, friendly service. Lucky Kebab is a true local gem!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happiness-leisure-lifestyle-concept-smiling-african-american-female-recreates-cafe-restaurant-eats-delicious-dessert-drinks-cocktail-happy-have-pleasant-conversation-with-interlocutor_273609-2194.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
<LocationSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Order Now"
|
||||
text="Hungry? Place your order online and pick it up fresh today."
|
||||
primaryButton={{
|
||||
text: "Call to Order",
|
||||
href: "tel:0000000000",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Visit Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.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 "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="A Family Tradition of Freshness"
|
||||
primaryButton={{
|
||||
text: "Our Story",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
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="Order Now"
|
||||
text="Hungry? Place your order online and pick it up fresh today."
|
||||
primaryButton={{
|
||||
text: "Call to Order",
|
||||
href: "tel:0000000000",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Visit Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
46
src/pages/HomePage/sections/Gallery.tsx
Normal file
46
src/pages/HomePage/sections/Gallery.tsx
Normal file
@@ -0,0 +1,46 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "gallery" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesArrowCards from '@/components/sections/features/FeaturesArrowCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function GallerySection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="gallery" data-section="gallery">
|
||||
<SectionErrorBoundary name="gallery">
|
||||
<FeaturesArrowCards
|
||||
tag="Inside Lucky Kebab"
|
||||
title="More Than Just Kebabs"
|
||||
description="See our clean, inviting shop and some of the local favourites."
|
||||
items={[
|
||||
{
|
||||
title: "Clean Inviting Shop",
|
||||
tags: [
|
||||
"Family Friendly",
|
||||
"Spotless",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/romantic-dining-table-setting-with-wine-glass-other_74190-7639.jpg",
|
||||
},
|
||||
{
|
||||
title: "Happy Local Customers",
|
||||
tags: [
|
||||
"Family",
|
||||
"Local Love",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/three-elegant-women-with-shopping-bags-city_1157-38858.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fresh Preparation",
|
||||
tags: [
|
||||
"Fresh",
|
||||
"Artisan",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pieces-fresh-homemade-sourdough-bread-slicing-artisan-bread-straw-lining-top-view_166373-3249.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Hero.tsx
Normal file
28
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// 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 HeroBillboardBrand from '@/components/sections/hero/HeroBillboardBrand';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardBrand
|
||||
brand="LUCKY KEBAB"
|
||||
description="Authentic, fresh, and locally loved. Experience the premium taste of tradition, prepared with care for our local community."
|
||||
primaryButton={{
|
||||
text: "Order Online",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/beef-meat-kebab-with-onions-sumakh-lavash-wooden-plate-served-with-wine-vegetables_114579-163.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
66
src/pages/HomePage/sections/Location.tsx
Normal file
66
src/pages/HomePage/sections/Location.tsx
Normal file
@@ -0,0 +1,66 @@
|
||||
import { MapPin, Clock, Phone } from 'lucide-react';
|
||||
import ScrollReveal from '@/components/ui/ScrollReveal';
|
||||
|
||||
export default function LocationSection() {
|
||||
return (
|
||||
<section data-webild-section="location" id="location" className="py-24 bg-background relative w-full">
|
||||
<div className="w-content-width mx-auto px-6">
|
||||
<ScrollReveal variant="fade">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
|
||||
<div>
|
||||
<h2 className="text-4xl md:text-5xl font-bold text-foreground mb-6">Find Us in Helensvale</h2>
|
||||
<p className="text-lg text-muted-foreground mb-8">
|
||||
Drop by for the freshest kebabs on the Gold Coast. We're centrally located with plenty of parking available.
|
||||
</p>
|
||||
|
||||
<div className="space-y-6">
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="p-3 bg-primary-cta/10 rounded-full text-primary-cta">
|
||||
<MapPin className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-1">Address</h3>
|
||||
<p className="text-muted-foreground">Helensvale, QLD 4212<br/>Gold Coast, Australia</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="p-3 bg-primary-cta/10 rounded-full text-primary-cta">
|
||||
<Clock className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-1">Opening Hours</h3>
|
||||
<p className="text-muted-foreground">Mon - Sun: 10:00 AM - 9:00 PM</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="p-3 bg-primary-cta/10 rounded-full text-primary-cta">
|
||||
<Phone className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-1">Phone</h3>
|
||||
<p className="text-muted-foreground">(07) 5500 0000</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="h-[400px] rounded-2xl overflow-hidden shadow-lg border border-border">
|
||||
<iframe
|
||||
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1m3!1d113032.64621406552!2d153.26607955!3d-27.90000005!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x6b9110756382c411%3A0x502a35af3de8b70!2sHelensvale%20QLD%204212!5e0!3m2!1sen!2sau!4v1700000000000!5m2!1sen!2sau"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style={{ border: 0 }}
|
||||
allowFullScreen={true}
|
||||
loading="lazy"
|
||||
referrerPolicy="no-referrer-when-downgrade"
|
||||
title="Lucky Kebab Location Map"
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Menu.tsx
Normal file
64
src/pages/HomePage/sections/Menu.tsx
Normal file
@@ -0,0 +1,64 @@
|
||||
// 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="Our Signature Menu"
|
||||
title="Freshness You Can Taste"
|
||||
description="From our succulent lamb kebabs to our famous hand-cut chips, discover the taste that everyone is talking about."
|
||||
items={[
|
||||
{
|
||||
title: "Lamb Kebab",
|
||||
description: "Slow-cooked, premium lamb, fresh salad, our secret sauce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-delicious-sweets-plate_23-2149192053.jpg",
|
||||
},
|
||||
{
|
||||
title: "Snack Pack",
|
||||
description: "The local favourite. Generous chips, cheese, and your choice of meat.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-mix-nuts-figs-plate_23-2148352341.jpg",
|
||||
},
|
||||
{
|
||||
title: "Toasted Pide",
|
||||
description: "Authentic, freshly toasted Turkish bread, warm and crispy.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/traditional-italian-mini-pizza-wooden-plate-marble-table_114579-82432.jpg",
|
||||
},
|
||||
{
|
||||
title: "Classic Beef Kebab",
|
||||
description: "High-quality beef with crispy salad and garlic yogurt sauce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-little-pipe-cookies-with-marmalade-white-surface_140725-61658.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fresh Cut Chips",
|
||||
description: "Double-cooked for the perfect crisp in every bite.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-tasty-ham-sandwiches-with-french-fries-dark-surface_179666-34646.jpg",
|
||||
},
|
||||
{
|
||||
title: "Turkish Delight",
|
||||
description: "The perfect sweet end to your meal.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/triangle-shaped-pastries-filled-with-cheese-wooden-board_114579-88842.jpg",
|
||||
},
|
||||
{
|
||||
title: "Family Combo",
|
||||
description: "Big servings designed for sharing with your loved ones.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/various-turkish-delights-dish-marble-background_114579-74572.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</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="What Locals Say"
|
||||
title="Loved By Our Community"
|
||||
description="We are proud to be a local favorite, serving up smiles and satisfaction every single day."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Local Resident",
|
||||
quote: "Hands down the best lamb kebab in the area. Always fresh, never greasy, and the staff are wonderful.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-smiling-brunette-asian-woman-sitting-with-graphic-pen-looking-happy-drawing_1258-199033.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael T.",
|
||||
role: "Loyal Customer",
|
||||
quote: "The Turkish bread is perfectly toasted every time. Excellent value and very generous servings.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-enjoying-croissant_1170-631.jpg",
|
||||
},
|
||||
{
|
||||
name: "The Anderson Family",
|
||||
role: "Family Diner",
|
||||
quote: "Our go-to place for a fast, delicious family meal. Very welcoming, clean, and quick service.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-family-havinf-dinner-together_23-2149117546.jpg",
|
||||
},
|
||||
{
|
||||
name: "David L.",
|
||||
role: "Professional",
|
||||
quote: "Consistent quality and fantastic customer service. It’s hard to find a place that really cares this much.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/elder-group-friends-partying_23-2150300153.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emma R.",
|
||||
role: "Student",
|
||||
quote: "Fresh ingredients and fast, friendly service. Lucky Kebab is a true local gem!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happiness-leisure-lifestyle-concept-smiling-african-american-female-recreates-cafe-restaurant-eats-delicious-dessert-drinks-cocktail-happy-have-pleasant-conversation-with-interlocutor_273609-2194.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
49
src/pages/HomePage/sections/WhyChoose.tsx
Normal file
49
src/pages/HomePage/sections/WhyChoose.tsx
Normal file
@@ -0,0 +1,49 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "why-choose" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function WhyChooseSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="why-choose" data-section="why-choose">
|
||||
<SectionErrorBoundary name="why-choose">
|
||||
<MetricsFeatureCards
|
||||
tag="Why Lucky Kebab?"
|
||||
title="Quality That Speaks for Itself"
|
||||
description="We believe in generous servings, fresh ingredients, and the kind of service that makes you feel at home."
|
||||
metrics={[
|
||||
{
|
||||
value: "100%",
|
||||
title: "Fresh Ingredients",
|
||||
features: [
|
||||
"Locally sourced",
|
||||
"Premium meats",
|
||||
"Freshly chopped salads",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "5★",
|
||||
title: "Customer Service",
|
||||
features: [
|
||||
"Friendly staff",
|
||||
"Fast service",
|
||||
"Community focused",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "Daily",
|
||||
title: "Hand-Prepared",
|
||||
features: [
|
||||
"Toasted turkish bread",
|
||||
"Homemade sauces",
|
||||
"Hand-marinated meats",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user