From 6830020f0efc24a7098449c94124d8e1d478a40f Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Mon, 22 Jun 2026 00:53:05 +0000 Subject: [PATCH] Bob AI: Added a customer reviews section with ratings and testimonia --- src/pages/HomePage.tsx | 107 +++++---------------- src/pages/HomePage/sections/About.tsx | 20 ++++ src/pages/HomePage/sections/Contact.tsx | 26 +++++ src/pages/HomePage/sections/Experience.tsx | 22 +++++ src/pages/HomePage/sections/Hero.tsx | 18 ++++ src/pages/HomePage/sections/Journeys.tsx | 26 +++++ src/pages/HomePage/sections/Reviews.tsx | 80 +++++++++++++++ src/pages/HomePage/sections/Rooms.tsx | 22 +++++ 8 files changed, 237 insertions(+), 84 deletions(-) create mode 100644 src/pages/HomePage/sections/About.tsx create mode 100644 src/pages/HomePage/sections/Contact.tsx create mode 100644 src/pages/HomePage/sections/Experience.tsx create mode 100644 src/pages/HomePage/sections/Hero.tsx create mode 100644 src/pages/HomePage/sections/Journeys.tsx create mode 100644 src/pages/HomePage/sections/Reviews.tsx create mode 100644 src/pages/HomePage/sections/Rooms.tsx diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index 98e8ff6..4030f40 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,97 +1,36 @@ -import { motion } from "motion/react"; +// 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. + import { StyleProvider } from "@/components/ui/StyleProvider"; import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot"; -import HeroExpand from "@/components/sections/hero/HeroExpand"; -import AboutParallax from "@/components/sections/about/AboutParallax"; -import FeaturesAttributeCards from "@/components/sections/features/FeaturesAttributeCards"; -import FeaturesMediaGrid from "@/components/sections/features/FeaturesMediaGrid"; -import FeaturesRevealCardsBento from "@/components/sections/features/FeaturesRevealCardsBento"; -import ContactSplitForm from "@/components/sections/contact/ContactSplitForm"; +import React from 'react'; +import HeroSection from './HomePage/sections/Hero'; +import AboutSection from './HomePage/sections/About'; +import RoomsSection from './HomePage/sections/Rooms'; +import ExperienceSection from './HomePage/sections/Experience'; +import JourneysSection from './HomePage/sections/Journeys'; +import ContactSection from './HomePage/sections/Contact'; -export default function HomePage() { + +import ReviewsSection from './HomePage/sections/Reviews';export default function HomePage(): React.JSX.Element { return ( - + -
- -
+ -
- -
+ -
- -
+ -
- -
+ -
- -
+ + -
- -
+
); -} \ No newline at end of file +} diff --git a/src/pages/HomePage/sections/About.tsx b/src/pages/HomePage/sections/About.tsx new file mode 100644 index 0000000..7b06239 --- /dev/null +++ b/src/pages/HomePage/sections/About.tsx @@ -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 AboutParallax from "@/components/sections/about/AboutParallax"; + +export default function AboutSection(): 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..28cdb98 --- /dev/null +++ b/src/pages/HomePage/sections/Contact.tsx @@ -0,0 +1,26 @@ +// 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 ContactSplitForm from "@/components/sections/contact/ContactSplitForm"; + +export default function ContactSection(): React.JSX.Element { + return ( +
+ +
+ ); +} diff --git a/src/pages/HomePage/sections/Experience.tsx b/src/pages/HomePage/sections/Experience.tsx new file mode 100644 index 0000000..2133912 --- /dev/null +++ b/src/pages/HomePage/sections/Experience.tsx @@ -0,0 +1,22 @@ +// 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 FeaturesMediaGrid from "@/components/sections/features/FeaturesMediaGrid"; + +export default function ExperienceSection(): 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..228e60a --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -0,0 +1,18 @@ +// 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 HeroExpand from "@/components/sections/hero/HeroExpand"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ +
+ ); +} diff --git a/src/pages/HomePage/sections/Journeys.tsx b/src/pages/HomePage/sections/Journeys.tsx new file mode 100644 index 0000000..dd516bd --- /dev/null +++ b/src/pages/HomePage/sections/Journeys.tsx @@ -0,0 +1,26 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "journeys" section. + +import React from 'react'; +import FeaturesRevealCardsBento from "@/components/sections/features/FeaturesRevealCardsBento"; + +export default function JourneysSection(): 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..aae26c5 --- /dev/null +++ b/src/pages/HomePage/sections/Reviews.tsx @@ -0,0 +1,80 @@ +import ScrollReveal from "@/components/ui/ScrollReveal"; +import TextAnimation from "@/components/ui/TextAnimation"; +import Tag from "@/components/ui/Tag"; +import RatingStars from "@/components/ui/RatingStars"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; + +export default function ReviewsSection() { + const testimonials = [ + { + name: "Eleanor Vance", + role: "Food Critic", + quote: "An absolute masterpiece of culinary art. Every dish was a journey of flavors, and the ambiance is unmatched.", + rating: 5, + imageSrc: "https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&q=80&w=200&h=200" + }, + { + name: "Marcus Thorne", + role: "Local Guide", + quote: "The attention to detail here is phenomenal. From the perfectly seared scallops to the curated wine list, it's a flawless experience.", + rating: 5, + imageSrc: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?auto=format&fit=crop&q=80&w=200&h=200" + }, + { + name: "Sophia Lin", + role: "Regular Guest", + quote: "We celebrate all our special occasions here. The staff makes you feel like royalty, and the tasting menu never disappoints.", + rating: 5, + imageSrc: "https://images.unsplash.com/photo-1438761681033-6461ffad8d80?auto=format&fit=crop&q=80&w=200&h=200" + } + ]; + + return ( +
+
+
+ + + + + +

+ Read about the experiences of our guests and discover why we are a top dining destination. +

+
+
+ +
+ {testimonials.map((testimonial, index) => ( + +
+ +

+ "{testimonial.quote}" +

+
+
+ +
+
+

{testimonial.name}

+

{testimonial.role}

+
+
+
+
+ ))} +
+
+
+ ); +} \ No newline at end of file diff --git a/src/pages/HomePage/sections/Rooms.tsx b/src/pages/HomePage/sections/Rooms.tsx new file mode 100644 index 0000000..95b5f25 --- /dev/null +++ b/src/pages/HomePage/sections/Rooms.tsx @@ -0,0 +1,22 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "rooms" section. + +import React from 'react'; +import FeaturesAttributeCards from "@/components/sections/features/FeaturesAttributeCards"; + +export default function RoomsSection(): React.JSX.Element { + return ( +
+ +
+ ); +} -- 2.49.1