Bob AI: Split src/pages/HomePage.tsx into per-section files (8 sections)
This commit is contained in:
@@ -1,170 +1,28 @@
|
||||
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
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; this shell only fixes render order.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import ProductsSection from './HomePage/sections/Products';
|
||||
import FeaturesSection from './HomePage/sections/Features';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import SocialProofSection from './HomePage/sections/SocialProof';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardTiltedCarousel
|
||||
tag="Welcome to Joes Coffee"
|
||||
title="Crafting Moments, One Cup at a Time"
|
||||
description="Experience the rich aroma and exquisite taste of our carefully roasted beans, perfect for every part of your day."
|
||||
primaryButton={{
|
||||
text: "Explore Our Coffees", href: "#products"}}
|
||||
secondaryButton={{
|
||||
text: "Visit Our Cafe", href: "#contact"}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-view-cup-coffee-with-muffins_23-2148251622.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/barista-handling-hot-cafe-latte_1150-8044.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-barista-hand-preparing-latte-coffee-wooden-table_23-2148209232.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cup-coffee-coffee-beans_23-2148937253.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/you-get-it-it-s-so-funny_329181-2916.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-waffles-with-cup-tea-marshmallow-pink-desk_140725-80935.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTextSplit
|
||||
title="Our Passion for Coffee"
|
||||
descriptions={[
|
||||
"At Joes Coffee, we believe that a great cup of coffee starts with passion and dedication. Our journey began with a simple idea: to bring exceptional, ethically sourced coffee from the world's best farms directly to your cup. We meticulously select only the finest beans, ensuring quality from soil to brew.", "Our expert roasters then transform these green beans into aromatic masterpieces, unlocking their unique flavors and characteristics. This artful process, combined with our commitment to sustainability, means every sip supports both exquisite taste and responsible practices.", "Beyond the bean, Joes Coffee is about fostering community. Whether you're a connoisseur or just beginning your coffee adventure, we invite you to explore our diverse range of blends, learn about their origins, and share in the joy of truly great coffee."]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Signature Blends"
|
||||
title="Taste the Joes Coffee Difference"
|
||||
description="Each blend tells a story of origin, craft, and passion. Discover your new favorite."
|
||||
items={[
|
||||
{
|
||||
title: "The Daily Grind", description: "A robust dark roast with notes of chocolate and caramel, perfect for an energetic start to your day. Bold and satisfying.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/different-kind-coffee-ceramic-wood-bowl-black-wooden-surface_176474-420.jpg"},
|
||||
{
|
||||
title: "Sunrise Serenity", description: "A smooth, medium-light roast with bright citrus and floral undertones. Ideal for a gentle morning wake-up.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fresh-berries-raspberries-blackberries-with-cup-tea-cinnamon-pink-desk_140725-50675.jpg"},
|
||||
{
|
||||
title: "Evening Decaf", description: "Enjoy the rich flavor of coffee without the caffeine. Our water-processed decaf is smooth and full-bodied.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-foundation-containers-arrangement_23-2149705547.jpg"},
|
||||
{
|
||||
title: "Vanilla Bean Dream", description: "Infused with natural vanilla, this medium roast offers a sweet, aromatic escape. A delightful treat any time.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/bowl-cereal-chocolate-flavored-cereal-mixed-with-milk-breakfast_1150-23565.jpg"},
|
||||
{
|
||||
title: "Chill Brew Concentrate", description: "Our signature cold brew concentrate. Mix with water or milk for a refreshing and smooth iced coffee experience.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/glass-with-milk-coffee-ice-cubes_23-2149600703.jpg"},
|
||||
{
|
||||
title: "Coffee Explorer Kit", description: "A curated selection of our best-selling blends, perfect for discovering your new favorite. Makes a great gift!", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/organic-coffee-beans-still-life_23-2151762413.jpg"},
|
||||
{
|
||||
title: "Home Barista Essentials", description: "Everything you need to brew the perfect cup at home, from pour-over kits to grinders. Elevate your home coffee game.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/healthy-blue-drink-composition-table_23-2148890315.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesComparison
|
||||
tag="Why Choose Joes Coffee?"
|
||||
title="More Than Just a Cup"
|
||||
description="We believe in transparency, quality, and a truly exceptional coffee experience that stands out from the rest."
|
||||
negativeItems={[
|
||||
"Generic, mass-produced beans", "Uncertain origin and sourcing", "Stale, pre-ground options", "Lack of flavor diversity", "No engagement with community", "Artificial additives"]}
|
||||
positiveItems={[
|
||||
"Artisan roasted in small batches", "Ethically and sustainably sourced", "Freshly roasted and delivered", "Unique, distinct flavor profiles", "Vibrant and welcoming community", "100% natural, pure coffee"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="Hear From Our Happy Customers"
|
||||
title="Loved by Coffee Enthusiasts"
|
||||
description="Our community shares their favorite Joes Coffee moments and experiences."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah Johnson", role: "CEO, Daily Brew Co.", quote: "Joes Coffee has completely transformed my mornings! The quality is unmatched, and I love knowing where my beans come from. Truly a delightful experience.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-joyful-ethnic-girl-has-fun-laughs-out-loudly-holds-disposable-cup-coffee-smiles-broadly-closes-eyes-has-cheerful-conversation-isolated-green-wall-lifestyle-concept_273609-39738.jpg"},
|
||||
{
|
||||
name: "Michael Chen", role: "Software Engineer", quote: "As a remote worker, good coffee is essential. Joes Coffee's blends are consistently fresh and flavorful, keeping me focused and happy throughout the day.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/lifestyle-businessman_23-2148102423.jpg"},
|
||||
{
|
||||
name: "Emily Rodriguez", role: "Marketing Director", quote: "I'm always looking for unique flavors, and Joes Coffee delivers! Their seasonal offerings are incredible, and the customer service is fantastic.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-friends-having-conversation-kitchen-coffee_23-2148708919.jpg"},
|
||||
{
|
||||
name: "David Kim", role: "Restaurant Owner", quote: "We serve Joes Coffee in our restaurant, and our customers rave about it. It’s the perfect complement to our menu, and we appreciate their commitment to quality.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-asian-female-entrepreneur-sitting-table-cafe_1262-17235.jpg"},
|
||||
{
|
||||
name: "Jessica Lee", role: "Barista, Local Cafe", quote: "Working with Joes Coffee beans is a dream. They grind beautifully, extract perfectly, and the crema is always spot on. Highly recommend!", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-barista-standing-bar-counter-dreamily-pouring-filter-coffee-glass-while-working-cafe_574295-3472.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="As Seen In"
|
||||
title="Trusted by Leading Publications & Partners"
|
||||
description="Our commitment to exceptional coffee has earned us recognition from respected names in the industry."
|
||||
names={[
|
||||
"http://img.b2bpic.net/free-vector/book-logo-ideas-inspiration-logo-design-template-vector-illustration-isolated-white-background_384344-721.jpg", "http://img.b2bpic.net/free-vector/workshop-sticker-template-green-retro-badge-vector_53876-156666.jpg", "http://img.b2bpic.net/free-photo/top-view-dark-square-plates-with-golden-fork-knife-cup-dark-background-cutlery-restaurant-lunch-color-plate-tea-drink_179666-19753.jpg", "https://storage.googleapis.com/webild/default/no-image.jpg?id=uqj4xt", "http://img.b2bpic.net/free-photo/close-up-person-offering-interview_23-2149037884.jpg", "http://img.b2bpic.net/free-vector/coffee-logo-template_23-2150529115.jpg", "http://img.b2bpic.net/free-photo/coffee-break-tea-time-stamp-icon-graphic-concept_53876-132649.jpg"
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Got Questions?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find answers to common questions about our coffee, ordering, and services."
|
||||
items={[
|
||||
{
|
||||
question: "Where do you source your coffee beans?", answer: "We partner directly with sustainable farms and co-ops in prime coffee-growing regions around the world, ensuring ethical practices and exceptional quality."},
|
||||
{
|
||||
question: "What roast levels do you offer?", answer: "We offer a range of roasts from light to dark, including medium, espresso, and custom blends. Each roast is carefully developed to highlight the beans' unique characteristics."},
|
||||
{
|
||||
question: "How should I store my coffee?", answer: "For optimal freshness, store your coffee beans in an airtight container away from light, heat, and moisture. We recommend grinding beans just before brewing."},
|
||||
{
|
||||
question: "Do you offer subscription services?", answer: "Yes, we have flexible coffee subscription plans tailored to your preferences. Choose your frequency, grind size, and favorite blends, and we'll deliver fresh to your door."},
|
||||
{
|
||||
question: "Can I visit your roastery or cafe?", answer: "Our flagship cafe is open for visitors! You can enjoy our coffee, meet our team, and occasionally attend special tasting events. Check our website for locations and hours."},
|
||||
{
|
||||
question: "What is your return policy?", answer: "We strive for complete satisfaction. If you're not happy with your order, please contact us within 30 days of purchase for a replacement or refund."},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Join the Joes Coffee Family"
|
||||
text="Ready to elevate your coffee experience? Get in touch with us or find a cafe near you to savor our unique blends."
|
||||
primaryButton={{
|
||||
text: "Find a Cafe", href: "#"}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us", href: "#"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<HeroSection />
|
||||
<AboutSection />
|
||||
<ProductsSection />
|
||||
<FeaturesSection />
|
||||
<TestimonialsSection />
|
||||
<SocialProofSection />
|
||||
<FaqSection />
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
20
src/pages/HomePage/sections/About.tsx
Normal file
20
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,20 @@
|
||||
// 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 AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTextSplit
|
||||
title="Our Passion for Coffee"
|
||||
descriptions={[
|
||||
"At Joes Coffee, we believe that a great cup of coffee starts with passion and dedication. Our journey began with a simple idea: to bring exceptional, ethically sourced coffee from the world's best farms directly to your cup. We meticulously select only the finest beans, ensuring quality from soil to brew.", "Our expert roasters then transform these green beans into aromatic masterpieces, unlocking their unique flavors and characteristics. This artful process, combined with our commitment to sustainability, means every sip supports both exquisite taste and responsible practices.", "Beyond the bean, Joes Coffee is about fostering community. Whether you're a connoisseur or just beginning your coffee adventure, we invite you to explore our diverse range of blends, learn about their origins, and share in the joy of truly great coffee."]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/Contact.tsx
Normal file
23
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// 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="Join the Joes Coffee Family"
|
||||
text="Ready to elevate your coffee experience? Get in touch with us or find a cafe near you to savor our unique blends."
|
||||
primaryButton={{
|
||||
text: "Find a Cafe", href: "#"}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us", href: "#"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Faq.tsx
Normal file
34
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Got Questions?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find answers to common questions about our coffee, ordering, and services."
|
||||
items={[
|
||||
{
|
||||
question: "Where do you source your coffee beans?", answer: "We partner directly with sustainable farms and co-ops in prime coffee-growing regions around the world, ensuring ethical practices and exceptional quality."},
|
||||
{
|
||||
question: "What roast levels do you offer?", answer: "We offer a range of roasts from light to dark, including medium, espresso, and custom blends. Each roast is carefully developed to highlight the beans' unique characteristics."},
|
||||
{
|
||||
question: "How should I store my coffee?", answer: "For optimal freshness, store your coffee beans in an airtight container away from light, heat, and moisture. We recommend grinding beans just before brewing."},
|
||||
{
|
||||
question: "Do you offer subscription services?", answer: "Yes, we have flexible coffee subscription plans tailored to your preferences. Choose your frequency, grind size, and favorite blends, and we'll deliver fresh to your door."},
|
||||
{
|
||||
question: "Can I visit your roastery or cafe?", answer: "Our flagship cafe is open for visitors! You can enjoy our coffee, meet our team, and occasionally attend special tasting events. Check our website for locations and hours."},
|
||||
{
|
||||
question: "What is your return policy?", answer: "We strive for complete satisfaction. If you're not happy with your order, please contact us within 30 days of purchase for a replacement or refund."},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
24
src/pages/HomePage/sections/Features.tsx
Normal file
24
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "features" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesComparison
|
||||
tag="Why Choose Joes Coffee?"
|
||||
title="More Than Just a Cup"
|
||||
description="We believe in transparency, quality, and a truly exceptional coffee experience that stands out from the rest."
|
||||
negativeItems={[
|
||||
"Generic, mass-produced beans", "Uncertain origin and sourcing", "Stale, pre-ground options", "Lack of flavor diversity", "No engagement with community", "Artificial additives"]}
|
||||
positiveItems={[
|
||||
"Artisan roasted in small batches", "Ethically and sustainably sourced", "Freshly roasted and delivered", "Unique, distinct flavor profiles", "Vibrant and welcoming community", "100% natural, pure coffee"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
38
src/pages/HomePage/sections/Hero.tsx
Normal file
38
src/pages/HomePage/sections/Hero.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 "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardTiltedCarousel
|
||||
tag="Welcome to Joes Coffee"
|
||||
title="Crafting Moments, One Cup at a Time"
|
||||
description="Experience the rich aroma and exquisite taste of our carefully roasted beans, perfect for every part of your day."
|
||||
primaryButton={{
|
||||
text: "Explore Our Coffees", href: "#products"}}
|
||||
secondaryButton={{
|
||||
text: "Visit Our Cafe", href: "#contact"}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-view-cup-coffee-with-muffins_23-2148251622.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/barista-handling-hot-cafe-latte_1150-8044.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-barista-hand-preparing-latte-coffee-wooden-table_23-2148209232.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cup-coffee-coffee-beans_23-2148937253.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/you-get-it-it-s-so-funny_329181-2916.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-waffles-with-cup-tea-marshmallow-pink-desk_140725-80935.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
36
src/pages/HomePage/sections/Products.tsx
Normal file
36
src/pages/HomePage/sections/Products.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 "products" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProductsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Signature Blends"
|
||||
title="Taste the Joes Coffee Difference"
|
||||
description="Each blend tells a story of origin, craft, and passion. Discover your new favorite."
|
||||
items={[
|
||||
{
|
||||
title: "The Daily Grind", description: "A robust dark roast with notes of chocolate and caramel, perfect for an energetic start to your day. Bold and satisfying.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/different-kind-coffee-ceramic-wood-bowl-black-wooden-surface_176474-420.jpg"},
|
||||
{
|
||||
title: "Sunrise Serenity", description: "A smooth, medium-light roast with bright citrus and floral undertones. Ideal for a gentle morning wake-up.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fresh-berries-raspberries-blackberries-with-cup-tea-cinnamon-pink-desk_140725-50675.jpg"},
|
||||
{
|
||||
title: "Evening Decaf", description: "Enjoy the rich flavor of coffee without the caffeine. Our water-processed decaf is smooth and full-bodied.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-foundation-containers-arrangement_23-2149705547.jpg"},
|
||||
{
|
||||
title: "Vanilla Bean Dream", description: "Infused with natural vanilla, this medium roast offers a sweet, aromatic escape. A delightful treat any time.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/bowl-cereal-chocolate-flavored-cereal-mixed-with-milk-breakfast_1150-23565.jpg"},
|
||||
{
|
||||
title: "Chill Brew Concentrate", description: "Our signature cold brew concentrate. Mix with water or milk for a refreshing and smooth iced coffee experience.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/glass-with-milk-coffee-ice-cubes_23-2149600703.jpg"},
|
||||
{
|
||||
title: "Coffee Explorer Kit", description: "A curated selection of our best-selling blends, perfect for discovering your new favorite. Makes a great gift!", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/organic-coffee-beans-still-life_23-2151762413.jpg"},
|
||||
{
|
||||
title: "Home Barista Essentials", description: "Everything you need to brew the perfect cup at home, from pour-over kits to grinders. Elevate your home coffee game.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/healthy-blue-drink-composition-table_23-2148890315.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/SocialProof.tsx
Normal file
23
src/pages/HomePage/sections/SocialProof.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// 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="As Seen In"
|
||||
title="Trusted by Leading Publications & Partners"
|
||||
description="Our commitment to exceptional coffee has earned us recognition from respected names in the industry."
|
||||
names={[
|
||||
"http://img.b2bpic.net/free-vector/book-logo-ideas-inspiration-logo-design-template-vector-illustration-isolated-white-background_384344-721.jpg", "http://img.b2bpic.net/free-vector/workshop-sticker-template-green-retro-badge-vector_53876-156666.jpg", "http://img.b2bpic.net/free-photo/top-view-dark-square-plates-with-golden-fork-knife-cup-dark-background-cutlery-restaurant-lunch-color-plate-tea-drink_179666-19753.jpg", "https://storage.googleapis.com/webild/default/no-image.jpg?id=uqj4xt", "http://img.b2bpic.net/free-photo/close-up-person-offering-interview_23-2149037884.jpg", "http://img.b2bpic.net/free-vector/coffee-logo-template_23-2150529115.jpg", "http://img.b2bpic.net/free-photo/coffee-break-tea-time-stamp-icon-graphic-concept_53876-132649.jpg"
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Testimonials.tsx
Normal file
37
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
// 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="Hear From Our Happy Customers"
|
||||
title="Loved by Coffee Enthusiasts"
|
||||
description="Our community shares their favorite Joes Coffee moments and experiences."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah Johnson", role: "CEO, Daily Brew Co.", quote: "Joes Coffee has completely transformed my mornings! The quality is unmatched, and I love knowing where my beans come from. Truly a delightful experience.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-joyful-ethnic-girl-has-fun-laughs-out-loudly-holds-disposable-cup-coffee-smiles-broadly-closes-eyes-has-cheerful-conversation-isolated-green-wall-lifestyle-concept_273609-39738.jpg"},
|
||||
{
|
||||
name: "Michael Chen", role: "Software Engineer", quote: "As a remote worker, good coffee is essential. Joes Coffee's blends are consistently fresh and flavorful, keeping me focused and happy throughout the day.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/lifestyle-businessman_23-2148102423.jpg"},
|
||||
{
|
||||
name: "Emily Rodriguez", role: "Marketing Director", quote: "I'm always looking for unique flavors, and Joes Coffee delivers! Their seasonal offerings are incredible, and the customer service is fantastic.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-friends-having-conversation-kitchen-coffee_23-2148708919.jpg"},
|
||||
{
|
||||
name: "David Kim", role: "Restaurant Owner", quote: "We serve Joes Coffee in our restaurant, and our customers rave about it. It’s the perfect complement to our menu, and we appreciate their commitment to quality.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-asian-female-entrepreneur-sitting-table-cafe_1262-17235.jpg"},
|
||||
{
|
||||
name: "Jessica Lee", role: "Barista, Local Cafe", quote: "Working with Joes Coffee beans is a dream. They grind beautifully, extract perfectly, and the crema is always spot on. Highly recommend!", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-barista-standing-bar-counter-dreamily-pouring-filter-coffee-glass-while-working-cafe_574295-3472.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user