From ec81a8a7288ee8766cd29b71448fe2ac964ffb27 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Mon, 22 Jun 2026 22:55:34 +0000 Subject: [PATCH] Bob AI: Replaced review avatars with anonymous initial icons --- src/pages/HomePage.tsx | 278 ++----------------- src/pages/HomePage/sections/Contact.tsx | 27 ++ src/pages/HomePage/sections/Gallery.tsx | 57 ++++ src/pages/HomePage/sections/Hero.tsx | 29 ++ src/pages/HomePage/sections/HowItWorks.tsx | 70 +++++ src/pages/HomePage/sections/Reviews.tsx | 111 ++++++++ src/pages/HomePage/sections/ServicesAuto.tsx | 43 +++ src/pages/HomePage/sections/SocialProof.tsx | 29 ++ src/pages/HomePage/sections/WhyUs.tsx | 24 ++ 9 files changed, 414 insertions(+), 254 deletions(-) create mode 100644 src/pages/HomePage/sections/Contact.tsx create mode 100644 src/pages/HomePage/sections/Gallery.tsx create mode 100644 src/pages/HomePage/sections/Hero.tsx create mode 100644 src/pages/HomePage/sections/HowItWorks.tsx create mode 100644 src/pages/HomePage/sections/Reviews.tsx create mode 100644 src/pages/HomePage/sections/ServicesAuto.tsx create mode 100644 src/pages/HomePage/sections/SocialProof.tsx create mode 100644 src/pages/HomePage/sections/WhyUs.tsx diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index e4f491f..120e8c2 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,267 +1,37 @@ -import AboutTextSplit from '@/components/sections/about/AboutTextSplit'; -import ContactCta from '@/components/sections/contact/ContactCta'; -import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; -import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento'; -import HeroOverlay from '@/components/sections/hero/HeroOverlay'; -import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards'; -import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee'; -import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards'; -import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; +// AUTO-GENERATED shell by per-section-migrate. +// Section bodies live in .//sections/.tsx. Edit the section +// files directly. Non-block content (wrappers, non-inlinable sections) is +// preserved inline; extracted section blocks become refs. -export default function HomePage() { +import React from 'react'; +import HeroSection from './HomePage/sections/Hero'; +import SocialProofSection from './HomePage/sections/SocialProof'; +import ServicesAutoSection from './HomePage/sections/ServicesAuto'; +import WhyUsSection from './HomePage/sections/WhyUs'; +import ReviewsSection from './HomePage/sections/Reviews'; +import GallerySection from './HomePage/sections/Gallery'; +import HowItWorksSection from './HomePage/sections/HowItWorks'; +import ContactSection from './HomePage/sections/Contact'; + +export default function HomePage(): React.JSX.Element { return ( - <> -
- - - -
+<> + -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ - + -
- - -
+ -
- - - -
+ ); } diff --git a/src/pages/HomePage/sections/Contact.tsx b/src/pages/HomePage/sections/Contact.tsx new file mode 100644 index 0000000..9dba8f9 --- /dev/null +++ b/src/pages/HomePage/sections/Contact.tsx @@ -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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Gallery.tsx b/src/pages/HomePage/sections/Gallery.tsx new file mode 100644 index 0000000..557d36b --- /dev/null +++ b/src/pages/HomePage/sections/Gallery.tsx @@ -0,0 +1,57 @@ +// 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 FeaturesImageBento from '@/components/sections/features/FeaturesImageBento'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function GallerySection(): 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..8ecedf5 --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -0,0 +1,29 @@ +// 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 HeroOverlay from '@/components/sections/hero/HeroOverlay'; +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..c0bbd6f --- /dev/null +++ b/src/pages/HomePage/sections/HowItWorks.tsx @@ -0,0 +1,70 @@ +// 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 PricingSplitCards from '@/components/sections/pricing/PricingSplitCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HowItWorksSection(): React.JSX.Element { + return ( +
+ + +
+ ); +} diff --git a/src/pages/HomePage/sections/Reviews.tsx b/src/pages/HomePage/sections/Reviews.tsx new file mode 100644 index 0000000..39d1004 --- /dev/null +++ b/src/pages/HomePage/sections/Reviews.tsx @@ -0,0 +1,111 @@ +/* eslint-disable */ +// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body +import Button from "@/components/ui/Button"; +import TextAnimation from "@/components/ui/TextAnimation"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import GridOrCarousel from "@/components/ui/GridOrCarousel"; +import ScrollReveal from "@/components/ui/ScrollReveal"; + +const testimonials = [ + { + name: "Tracy Roski", + role: "Client", + quote: "Incredible experience. The reflection is like a mirror, and the paint looks deeper and glossier than we ever imagined.", + imageSrc: "http://img.b2bpic.net/free-photo/girl-sitting-table-holding-mobile-phone-indoors_171337-17096.jpg" + }, + { + name: "Lindsay Klaff", + role: "Client", + quote: "They showed up on time, were incredibly professional, and made my car look brand new.", + imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-female-dentist-dentistry-concept-dental-treatment_169016-67131.jpg" + }, + { + name: "D.Z.", + role: "Client", + quote: "Antonio did an amazing job. He went above and beyond and made the process incredibly convenient.", + imageSrc: "http://img.b2bpic.net/free-photo/businessman-close-up_1139-650.jpg" + }, + { + name: "Amanda Clark", + role: "Client", + quote: "I didn’t think my car could ever look this good again.", + imageSrc: "http://img.b2bpic.net/free-photo/happy-business-woman-white-shirt_23-2148095748.jpg" + }, + { + name: "Elizabeth Waltman", + role: "Client", + quote: "Our dog practically lived in the vehicle. Now it looks like a dog was never there.", + imageSrc: "http://img.b2bpic.net/free-photo/employee-working-with-trendy-clothes_482257-78860.jpg" + } +]; + +type Testimonial = { + name: string; + role: string; + quote: string; +} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); + +const ReviewsInline = () => ( +
+
+
+
+

{"Customer Reviews"}

+
+ + + + + + {(undefined || undefined) && ( +
+ {undefined &&
+ )} +
+ + + + {testimonials.map((testimonial) => ( +
+
+ {testimonial.name.charAt(0)} +
+ +
+ {testimonial.name} + {testimonial.role} +
+ +

{testimonial.quote}

+
+ ))} +
+
+
+
+); + +export default function ReviewsSection() { + return ( +
+ +
+ ); +} diff --git a/src/pages/HomePage/sections/ServicesAuto.tsx b/src/pages/HomePage/sections/ServicesAuto.tsx new file mode 100644 index 0000000..a00b962 --- /dev/null +++ b/src/pages/HomePage/sections/ServicesAuto.tsx @@ -0,0 +1,43 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "services-auto" section. + +import React from 'react'; +import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ServicesAutoSection(): 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..593a6a1 --- /dev/null +++ b/src/pages/HomePage/sections/SocialProof.tsx @@ -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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/WhyUs.tsx b/src/pages/HomePage/sections/WhyUs.tsx new file mode 100644 index 0000000..026b1d8 --- /dev/null +++ b/src/pages/HomePage/sections/WhyUs.tsx @@ -0,0 +1,24 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "why-us" section. + +import React from 'react'; +import AboutTextSplit from '@/components/sections/about/AboutTextSplit'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function WhyUsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} -- 2.49.1