diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index ff6948c..39b29e8 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,213 +1,30 @@ -import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit'; -import ContactCta from '@/components/sections/contact/ContactCta'; -import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion'; -import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; -import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento'; -import HeroBrand from '@/components/sections/hero/HeroBrand'; -import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards'; -import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee'; -import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards'; -import { Award, Cake, Heart, Truck, Users, Wheat } from "lucide-react"; -import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; +// AUTO-GENERATED shell by per-section-migrate. +// Section bodies live in .//sections/.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 HowItWorksSection from './HomePage/sections/HowItWorks'; +import MetricsSection from './HomePage/sections/Metrics'; +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 ( <> -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
+ + + + + + + + + ); } diff --git a/src/pages/HomePage/sections/About.tsx b/src/pages/HomePage/sections/About.tsx new file mode 100644 index 0000000..2f477aa --- /dev/null +++ b/src/pages/HomePage/sections/About.tsx @@ -0,0 +1,73 @@ +import React, { useState, useEffect } from 'react'; +import { Wheat, Heart, Truck } from "lucide-react"; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; +import Tag from "@/components/ui/Tag"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; + +export default function AboutSection(): React.JSX.Element { + const [timeLeft, setTimeLeft] = useState(300); + + useEffect(() => { + if (timeLeft <= 0) return; + const timerId = setInterval(() => { + setTimeLeft(prev => prev - 1); + }, 1000); + return () => clearInterval(timerId); + }, [timeLeft]); + + const minutes = Math.floor(timeLeft / 60); + const seconds = timeLeft % 60; + + return ( +
+ +
+
+
+ +
+
+
+
+
+ +
+

Premium Ingredients

+

Sourced locally and globally for the finest quality and flavor.

+
+
+
+ +
+

Handcrafted with Love

+

Each item is carefully prepared by our skilled bakers.

+
+
+
+ +
+

Convenient Delivery

+

Freshness brought directly to your home or office.

+
+
+
+
+ +
+ Discount Ends In + + {String(minutes).padStart(2, '0')}:{String(seconds).padStart(2, '0')} + +
+
+
+
+
+
+
+
+ ); +} diff --git a/src/pages/HomePage/sections/Contact.tsx b/src/pages/HomePage/sections/Contact.tsx new file mode 100644 index 0000000..42714ca --- /dev/null +++ b/src/pages/HomePage/sections/Contact.tsx @@ -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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Faq.tsx b/src/pages/HomePage/sections/Faq.tsx new file mode 100644 index 0000000..02125ad --- /dev/null +++ b/src/pages/HomePage/sections/Faq.tsx @@ -0,0 +1,50 @@ +// 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 FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function FaqSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx new file mode 100644 index 0000000..8c3817b --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -0,0 +1,24 @@ +// 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 HeroBrand from '@/components/sections/hero/HeroBrand'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/HowItWorks.tsx b/src/pages/HomePage/sections/HowItWorks.tsx new file mode 100644 index 0000000..efe7d4d --- /dev/null +++ b/src/pages/HomePage/sections/HowItWorks.tsx @@ -0,0 +1,28 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "how-it-works" section. + +import React from 'react'; +import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HowItWorksSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Metrics.tsx b/src/pages/HomePage/sections/Metrics.tsx new file mode 100644 index 0000000..5defa55 --- /dev/null +++ b/src/pages/HomePage/sections/Metrics.tsx @@ -0,0 +1,32 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "metrics" section. + +import React from 'react'; +import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards'; +import { Award, Cake, Heart, Truck, Users, Wheat } from "lucide-react"; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function MetricsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Products.tsx b/src/pages/HomePage/sections/Products.tsx new file mode 100644 index 0000000..825123a --- /dev/null +++ b/src/pages/HomePage/sections/Products.tsx @@ -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 FeaturesImageBento from '@/components/sections/features/FeaturesImageBento'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ProductsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/SocialProof.tsx b/src/pages/HomePage/sections/SocialProof.tsx new file mode 100644 index 0000000..81c2a9a --- /dev/null +++ b/src/pages/HomePage/sections/SocialProof.tsx @@ -0,0 +1,22 @@ +// 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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Testimonials.tsx b/src/pages/HomePage/sections/Testimonials.tsx new file mode 100644 index 0000000..55ae8a1 --- /dev/null +++ b/src/pages/HomePage/sections/Testimonials.tsx @@ -0,0 +1,40 @@ +// 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 TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function TestimonialsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +}