Compare commits
2 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 903a83e988 | |||
|
|
f616d9fb2d |
@@ -20,20 +20,20 @@ export default function Layout() {
|
||||
"href": "#products"
|
||||
},
|
||||
{
|
||||
"name": "About",
|
||||
"name": "Offers",
|
||||
"href": "#offers"
|
||||
},
|
||||
{
|
||||
"name": "Blog",
|
||||
"href": "#blog"
|
||||
},
|
||||
{
|
||||
"name": "About Us",
|
||||
"href": "#about"
|
||||
},
|
||||
{
|
||||
"name": "Hero",
|
||||
"href": "#hero"
|
||||
},
|
||||
{
|
||||
"name": "Business",
|
||||
"href": "#business"
|
||||
},
|
||||
{
|
||||
"name": "Testimonials",
|
||||
"href": "#testimonials"
|
||||
"name": "Contact Us",
|
||||
"href": "#contact"
|
||||
}
|
||||
];
|
||||
|
||||
@@ -42,9 +42,9 @@ export default function Layout() {
|
||||
<SiteBackgroundSlot />
|
||||
<SectionErrorBoundary name="navbar">
|
||||
<NavbarInline
|
||||
logo="QuickSeva"
|
||||
logo="https://storage.googleapis.com/webild/users/user_3FAXTKWYMS4P112UeNzWHzCPEir/uploaded-1781519960494-25qqbhm5.jpg"
|
||||
ctaButton={{
|
||||
text: "Book Service",
|
||||
text: "Login / Signup",
|
||||
href: "#contact",
|
||||
}}
|
||||
navItems={navItems} />
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #020617;
|
||||
--card: #0f172a;
|
||||
--foreground: #f8fafc;
|
||||
--background: #ffffff;
|
||||
--card: #f8fafc;
|
||||
--foreground: #020617;
|
||||
--primary-cta: #106EFB;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #0f172a;
|
||||
--secondary-cta-text: #f8fafc;
|
||||
--secondary-cta: #f1f5f9;
|
||||
--secondary-cta-text: #020617;
|
||||
--accent: #38bdf8;
|
||||
--background-accent: #1e293b;
|
||||
|
||||
|
||||
@@ -1,226 +1,33 @@
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroBillboardBrand from '@/components/sections/hero/HeroBillboardBrand';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
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 ServicesSection from './HomePage/sections/Services';
|
||||
import ProductsSection from './HomePage/sections/Products';
|
||||
import BusinessSection from './HomePage/sections/Business';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
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">
|
||||
<HeroBillboardBrand
|
||||
brand="QuickSeva"
|
||||
description="Modasa's premier marketplace for local services, products, and businesses. Quality you can trust, right at your doorstep."
|
||||
primaryButton={{
|
||||
text: "Book Now",
|
||||
href: "#services",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Join as Partner",
|
||||
href: "#contact",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/saas-concept-collage_23-2149399288.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesRevealCards
|
||||
tag="Our Services"
|
||||
title="Essential Local Services"
|
||||
description="From repairs to professional care, we provide everything your home needs."
|
||||
items={[
|
||||
{
|
||||
title: "Electrician",
|
||||
description: "Expert electrical repairs and installations.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/technical-specialist-repairing-electrical-system-with-screwdriver-industrial-electrician_169016-71746.jpg",
|
||||
},
|
||||
{
|
||||
title: "Plumber",
|
||||
description: "Fast and reliable plumbing solutions.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990730.jpg",
|
||||
},
|
||||
{
|
||||
title: "Carpenter",
|
||||
description: "High-quality furniture repair and woodwork.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tools-stand-inside-old-atelier_114579-12142.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ServicesSection />
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Local Marketplace"
|
||||
title="Featured Products"
|
||||
description="Shop the best products from your local Modasa vendors."
|
||||
items={[
|
||||
{
|
||||
title: "Smart Tech",
|
||||
description: "Latest gadgets.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-wireless-cyberpunk-headphones_23-2151072234.jpg",
|
||||
},
|
||||
{
|
||||
title: "Groceries",
|
||||
description: "Fresh produce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fruit-stand-background_23-2147960255.jpg",
|
||||
},
|
||||
{
|
||||
title: "Home Care",
|
||||
description: "Essentials.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-bucket-with-cleaning-solutions-gloves_23-2148587338.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tools",
|
||||
description: "Home hardware.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/headphones-laptop-home_23-2149551432.jpg",
|
||||
},
|
||||
{
|
||||
title: "Office Items",
|
||||
description: "Supplies.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-holding-groceries-bag_23-2149663614.jpg",
|
||||
},
|
||||
{
|
||||
title: "Personal Care",
|
||||
description: "Daily needs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/colorful-composition-with-set-bright-cleaning-sponges-cleaning-agent-cleaning-service-concept-background_169016-10768.jpg",
|
||||
},
|
||||
{
|
||||
title: "Books",
|
||||
description: "Stationary.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-wireless-cyberpunk-headphones_23-2151072189.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProductsSection />
|
||||
|
||||
<div id="business" data-section="business">
|
||||
<SectionErrorBoundary name="business">
|
||||
<MetricsMediaCards
|
||||
tag="Local Businesses"
|
||||
title="Explore Modasa Business"
|
||||
description="Support local commerce with our verified directory."
|
||||
metrics={[
|
||||
{
|
||||
value: "500+",
|
||||
title: "Restaurants",
|
||||
description: "Top rated spots.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dining-table-background-zoom-calls_23-2149684444.jpg",
|
||||
},
|
||||
{
|
||||
value: "120+",
|
||||
title: "Medical Stores",
|
||||
description: "Always reachable.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-meeting-medical-office-talk-about-pregnancy-childbirth-pregnant-woman-asking-advice-from-obstetrician-medic-having-conversation-with-expectant-patient-taking-notes_482257-45739.jpg",
|
||||
},
|
||||
{
|
||||
value: "85+",
|
||||
title: "Fitness Hubs",
|
||||
description: "Stay healthy.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/equipments-gym_93675-129485.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<BusinessSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Our Community"
|
||||
title="What Modasa Says"
|
||||
description="Thousands of satisfied customers and business owners."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Aman Patel",
|
||||
role: "Home Owner",
|
||||
quote: "QuickSeva is a game changer for local services in Modasa.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/studio-portrait-successful-young-businesswoman_1262-5844.jpg",
|
||||
},
|
||||
{
|
||||
name: "Neha Shah",
|
||||
role: "Vendor",
|
||||
quote: "My business reach has tripled since joining the platform.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-long-haired-laughing-asian-man-with-blonde-woman-pleased-chinese-office-worker-blue-shirt-joking-with-female-colleague-workplace_197531-3733.jpg",
|
||||
},
|
||||
{
|
||||
name: "Rahul Verma",
|
||||
role: "Professional",
|
||||
quote: "Fast, reliable, and super convenient.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/technology-occupation-remote-work-concept-confident-young-female-copywriter-standing-kitchen_343059-3895.jpg",
|
||||
},
|
||||
{
|
||||
name: "Priya Mehta",
|
||||
role: "Customer",
|
||||
quote: "The best way to find local experts.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-drinking-coffee-construction-side_329181-3771.jpg",
|
||||
},
|
||||
{
|
||||
name: "Suresh Kumar",
|
||||
role: "User",
|
||||
quote: "Incredible marketplace experience.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/middle-age-man-using-computer-laptop-home-smiling-confident-pointing-with-fingers-different-directions-copy-space-advertisement_839833-25307.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Support"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about QuickSeva."
|
||||
items={[
|
||||
{
|
||||
question: "How do I become a vendor?",
|
||||
answer: "Register through the vendor portal and complete your verification.",
|
||||
},
|
||||
{
|
||||
question: "Is QuickSeva available in my area?",
|
||||
answer: "We are fully operational throughout Modasa, Gujarat.",
|
||||
},
|
||||
{
|
||||
question: "How are payments processed?",
|
||||
answer: "We integrate with Razorpay for secure payments.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Get Started"
|
||||
text="Join the QuickSeva community today. Whether you need services or want to sell, we're here to help."
|
||||
primaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Support",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
40
src/pages/HomePage/sections/Business.tsx
Normal file
40
src/pages/HomePage/sections/Business.tsx
Normal file
@@ -0,0 +1,40 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "business" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function BusinessSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="business" data-section="business">
|
||||
<SectionErrorBoundary name="business">
|
||||
<MetricsMediaCards
|
||||
tag="Local Businesses"
|
||||
title="Explore Modasa Business"
|
||||
description="Support local commerce with our verified directory."
|
||||
metrics={[
|
||||
{
|
||||
value: "500+",
|
||||
title: "Restaurants",
|
||||
description: "Top rated spots.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dining-table-background-zoom-calls_23-2149684444.jpg",
|
||||
},
|
||||
{
|
||||
value: "120+",
|
||||
title: "Medical Stores",
|
||||
description: "Always reachable.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-meeting-medical-office-talk-about-pregnancy-childbirth-pregnant-woman-asking-advice-from-obstetrician-medic-having-conversation-with-expectant-patient-taking-notes_482257-45739.jpg",
|
||||
},
|
||||
{
|
||||
value: "85+",
|
||||
title: "Fitness Hubs",
|
||||
description: "Stay healthy.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/equipments-gym_93675-129485.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</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="Get Started"
|
||||
text="Join the QuickSeva community today. Whether you need services or want to sell, we're here to help."
|
||||
primaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Support",
|
||||
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 FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Support"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about QuickSeva."
|
||||
items={[
|
||||
{
|
||||
question: "How do I become a vendor?",
|
||||
answer: "Register through the vendor portal and complete your verification.",
|
||||
},
|
||||
{
|
||||
question: "Is QuickSeva available in my area?",
|
||||
answer: "We are fully operational throughout Modasa, Gujarat.",
|
||||
},
|
||||
{
|
||||
question: "How are payments processed?",
|
||||
answer: "We integrate with Razorpay for secure payments.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
19
src/pages/HomePage/sections/Hero.tsx
Normal file
19
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
// Created by add_section_from_catalog (HeroOverlay).
|
||||
|
||||
import React from 'react';
|
||||
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="hero" id="hero">
|
||||
<HeroOverlay
|
||||
title="Book Trusted Services at Your Doorstep"
|
||||
description="Plumber, Electrician, AC Repair, Cleaning & more. Trained Professionals | Safe & Reliable"
|
||||
primaryButton={{"href":"#services","text":"Book Now"}}
|
||||
secondaryButton={{"href":"#contact","text":"Join as Partner"}}
|
||||
imageSrc="https://storage.googleapis.com/webild/users/user_3FAXTKWYMS4P112UeNzWHzCPEir/uploaded-1781519960489-1vcu72bc.png"
|
||||
tag="…"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Products.tsx
Normal file
64
src/pages/HomePage/sections/Products.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 "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="Local Marketplace"
|
||||
title="Featured Products"
|
||||
description="Shop the best products from your local Modasa vendors."
|
||||
items={[
|
||||
{
|
||||
title: "Smart Tech",
|
||||
description: "Latest gadgets.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-wireless-cyberpunk-headphones_23-2151072234.jpg",
|
||||
},
|
||||
{
|
||||
title: "Groceries",
|
||||
description: "Fresh produce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fruit-stand-background_23-2147960255.jpg",
|
||||
},
|
||||
{
|
||||
title: "Home Care",
|
||||
description: "Essentials.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-bucket-with-cleaning-solutions-gloves_23-2148587338.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tools",
|
||||
description: "Home hardware.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/headphones-laptop-home_23-2149551432.jpg",
|
||||
},
|
||||
{
|
||||
title: "Office Items",
|
||||
description: "Supplies.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-holding-groceries-bag_23-2149663614.jpg",
|
||||
},
|
||||
{
|
||||
title: "Personal Care",
|
||||
description: "Daily needs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/colorful-composition-with-set-bright-cleaning-sponges-cleaning-agent-cleaning-service-concept-background_169016-10768.jpg",
|
||||
},
|
||||
{
|
||||
title: "Books",
|
||||
description: "Stationary.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-wireless-cyberpunk-headphones_23-2151072189.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Services.tsx
Normal file
37
src/pages/HomePage/sections/Services.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 "services" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesRevealCards
|
||||
tag="Our Services"
|
||||
title="Essential Local Services"
|
||||
description="From repairs to professional care, we provide everything your home needs."
|
||||
items={[
|
||||
{
|
||||
title: "Electrician",
|
||||
description: "Expert electrical repairs and installations.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/technical-specialist-repairing-electrical-system-with-screwdriver-industrial-electrician_169016-71746.jpg",
|
||||
},
|
||||
{
|
||||
title: "Plumber",
|
||||
description: "Fast and reliable plumbing solutions.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990730.jpg",
|
||||
},
|
||||
{
|
||||
title: "Carpenter",
|
||||
description: "High-quality furniture repair and woodwork.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tools-stand-inside-old-atelier_114579-12142.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// 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 TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Our Community"
|
||||
title="What Modasa Says"
|
||||
description="Thousands of satisfied customers and business owners."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Aman Patel",
|
||||
role: "Home Owner",
|
||||
quote: "QuickSeva is a game changer for local services in Modasa.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/studio-portrait-successful-young-businesswoman_1262-5844.jpg",
|
||||
},
|
||||
{
|
||||
name: "Neha Shah",
|
||||
role: "Vendor",
|
||||
quote: "My business reach has tripled since joining the platform.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-long-haired-laughing-asian-man-with-blonde-woman-pleased-chinese-office-worker-blue-shirt-joking-with-female-colleague-workplace_197531-3733.jpg",
|
||||
},
|
||||
{
|
||||
name: "Rahul Verma",
|
||||
role: "Professional",
|
||||
quote: "Fast, reliable, and super convenient.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/technology-occupation-remote-work-concept-confident-young-female-copywriter-standing-kitchen_343059-3895.jpg",
|
||||
},
|
||||
{
|
||||
name: "Priya Mehta",
|
||||
role: "Customer",
|
||||
quote: "The best way to find local experts.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-drinking-coffee-construction-side_329181-3771.jpg",
|
||||
},
|
||||
{
|
||||
name: "Suresh Kumar",
|
||||
role: "User",
|
||||
quote: "Incredible marketplace experience.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/middle-age-man-using-computer-laptop-home-smiling-confident-pointing-with-fingers-different-directions-copy-space-advertisement_839833-25307.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user