Compare commits
2 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ae124a424d | |||
|
|
2dcb89cca9 |
@@ -1,269 +1,34 @@
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in the sibling sections/ folder (one file per section).
|
||||
// Edit those section files directly. Non-block content (wrappers,
|
||||
// non-inlinable sections) is preserved inline; extracted section blocks
|
||||
// become component refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import ProductsSection from './HomePage/sections/Products';
|
||||
import FeaturesSection from './HomePage/sections/Features';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
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">
|
||||
<HeroCenteredLogos
|
||||
avatarsSrc={[
|
||||
"http://img.b2bpic.net/free-photo/handsome-groom-classy-black-suit-stands-dark-room_8353-7083.jpg",
|
||||
"http://img.b2bpic.net/free-photo/portrait-male-car-mechanic-car-repair-shop_23-2150367574.jpg",
|
||||
"http://img.b2bpic.net/free-photo/entrepreneur-working-from-home-using-laptop-writing-notes-paper_482257-118438.jpg",
|
||||
"http://img.b2bpic.net/free-photo/mature-fbi-agent-work_1098-15346.jpg",
|
||||
"http://img.b2bpic.net/free-photo/businessman-with-colleague_1098-14876.jpg",
|
||||
]}
|
||||
avatarText="Trusted by over 10,000 customers"
|
||||
title="Elevate Your Home with Smart Digital Products"
|
||||
description="Discover high-performance laptops, cameras, and innovative home appliances designed to streamline your lifestyle."
|
||||
primaryButton={{
|
||||
text: "Browse Collections",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#contact",
|
||||
}}
|
||||
names={[
|
||||
"Alice",
|
||||
"Bob",
|
||||
"Charlie",
|
||||
"David",
|
||||
"Eve",
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/still-life-wireless-cyberpunk-headphones_23-2151072230.jpg"
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Essential Gear"
|
||||
title="Everything for Your Modern Life"
|
||||
description="Innovative products for work, creativity, and home efficiency."
|
||||
items={[
|
||||
{
|
||||
title: "High-Performance Laptops",
|
||||
description: "Powerful machines built for professionals.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/laptop-screen-template-with-hacking-concept_23-2148165945.jpg",
|
||||
},
|
||||
{
|
||||
title: "Professional Cameras",
|
||||
description: "Capture the world in stunning detail.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-photo-camera-still-life_23-2150630674.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smart Kitchen Tech",
|
||||
description: "Elevate your morning routine.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-young-man-leaning-wooden-kitchen-counter-looking-smart-phone_23-2148042730.jpg",
|
||||
},
|
||||
{
|
||||
title: "Audio Essentials",
|
||||
description: "Immersive sound for every occasion.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-tech-device_23-2150722643.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smart Home Hubs",
|
||||
description: "The center of your connected home.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/white-wireless-earbuds-with-case_53876-96327.jpg",
|
||||
},
|
||||
{
|
||||
title: "Digital Storage",
|
||||
description: "Secure space for all your files.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-storage-devices-assortment_23-2149319330.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smart Wearables",
|
||||
description: "Tech that moves with you.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smart-watch-contactless-cashless-payment_53876-97186.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProductsSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesDetailedCards
|
||||
tag="Premium Quality"
|
||||
title="Why Choose TechHome?"
|
||||
description="We handpick only the best digital products for reliability and design excellence."
|
||||
items={[
|
||||
{
|
||||
title: "Verified Performance",
|
||||
description: "Every product undergoes rigorous testing for durability and speed.",
|
||||
tags: [
|
||||
"verified",
|
||||
"quality",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-device-table_23-2150994374.jpg",
|
||||
},
|
||||
{
|
||||
title: "Sleek Aesthetics",
|
||||
description: "Technology that complements your living space design.",
|
||||
tags: [
|
||||
"minimalist",
|
||||
"design",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/clouse-up-beautiful-woman-enjoying-breakfast_23-2149063288.jpg",
|
||||
},
|
||||
{
|
||||
title: "24/7 Expert Support",
|
||||
description: "We are here to assist with every setup and query.",
|
||||
tags: [
|
||||
"expert",
|
||||
"support",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/minimal-tech-setup-with-earbuds_58702-17226.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="Our Impact"
|
||||
title="Delivering Excellence Daily"
|
||||
description="Our numbers reflect our commitment to your satisfaction and innovation."
|
||||
metrics={[
|
||||
{
|
||||
value: "10k+",
|
||||
title: "Happy Users",
|
||||
description: "Customers trusting our digital ecosystem.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-photo-camera-indoors-still-life_23-2150630618.jpg",
|
||||
},
|
||||
{
|
||||
value: "500+",
|
||||
title: "Products Listed",
|
||||
description: "Curated tech gear for your needs.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/different-gadgets-table_1161-103.jpg",
|
||||
},
|
||||
{
|
||||
value: "24/7",
|
||||
title: "Active Support",
|
||||
description: "Always ready to help you thrive.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-horizontal-bluetooth-speaker-with-simple-minimal-modern-design_23-2150808002.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="What They Say"
|
||||
title="Trusted by Experts"
|
||||
description="See why professionals trust our products."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Creative Director",
|
||||
quote: "The laptop I bought is incredible, perfect for my design workflow.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/positive-confident-businesswoman-wearing-formal-suit-standing-with-arms-folded_74855-10328.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael Chen",
|
||||
role: "Photographer",
|
||||
quote: "Top-tier camera gear. Delivery was fast and quality is outstanding.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-editing-her-product-photos_23-2149060884.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily Rodriguez",
|
||||
role: "Home Chef",
|
||||
quote: "My smart coffee maker has transformed my kitchen. Simply brilliant.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/attractive-european-girl-with-charming-smile-keeps-arms-folded-wears-round-spectacles_273609-18493.jpg",
|
||||
},
|
||||
{
|
||||
name: "David Kim",
|
||||
role: "Software Engineer",
|
||||
quote: "Reliable hardware that just works every single day.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-confident-man_176474-85918.jpg",
|
||||
},
|
||||
{
|
||||
name: "Rachel P.",
|
||||
role: "Tech Blogger",
|
||||
quote: "The bento grid navigation helped me find the perfect accessories fast.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-woman-with-white-headphones-smoothie-table_1157-2110.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Get Answers"
|
||||
title="Frequently Asked Questions"
|
||||
description="Common questions regarding our digital products and policies."
|
||||
items={[
|
||||
{
|
||||
question: "What is the warranty period?",
|
||||
answer: "All items come with a minimum 1-year manufacturer warranty.",
|
||||
},
|
||||
{
|
||||
question: "Do you ship internationally?",
|
||||
answer: "Yes, we ship globally with trusted logistics partners.",
|
||||
},
|
||||
{
|
||||
question: "How do I track my order?",
|
||||
answer: "You will receive an email with tracking details upon shipment.",
|
||||
},
|
||||
{
|
||||
question: "Is tech support available?",
|
||||
answer: "Yes, contact our support team anytime via chat or email.",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Get Started"
|
||||
text="Ready to upgrade your home tech? Shop our curated selection today."
|
||||
primaryButton={{
|
||||
text: "View Shop",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Support",
|
||||
href: "#",
|
||||
}}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
28
src/pages/HomePage/sections/Contact.tsx
Normal file
28
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// 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="Ready to upgrade your home tech? Shop our curated selection today."
|
||||
primaryButton={{
|
||||
text: "View Shop",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Support",
|
||||
href: "#",
|
||||
}}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
39
src/pages/HomePage/sections/Faq.tsx
Normal file
39
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,39 @@
|
||||
// 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="Get Answers"
|
||||
title="Frequently Asked Questions"
|
||||
description="Common questions regarding our digital products and policies."
|
||||
items={[
|
||||
{
|
||||
question: "What is the warranty period?",
|
||||
answer: "All items come with a minimum 1-year manufacturer warranty.",
|
||||
},
|
||||
{
|
||||
question: "Do you ship internationally?",
|
||||
answer: "Yes, we ship globally with trusted logistics partners.",
|
||||
},
|
||||
{
|
||||
question: "How do I track my order?",
|
||||
answer: "You will receive an email with tracking details upon shipment.",
|
||||
},
|
||||
{
|
||||
question: "Is tech support available?",
|
||||
answer: "Yes, contact our support team anytime via chat or email.",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
50
src/pages/HomePage/sections/Features.tsx
Normal file
50
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,50 @@
|
||||
// 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 FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesDetailedCards
|
||||
tag="Premium Quality"
|
||||
title="Why Choose TechHome?"
|
||||
description="We handpick only the best digital products for reliability and design excellence."
|
||||
items={[
|
||||
{
|
||||
title: "Verified Performance",
|
||||
description: "Every product undergoes rigorous testing for durability and speed.",
|
||||
tags: [
|
||||
"verified",
|
||||
"quality",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-device-table_23-2150994374.jpg",
|
||||
},
|
||||
{
|
||||
title: "Sleek Aesthetics",
|
||||
description: "Technology that complements your living space design.",
|
||||
tags: [
|
||||
"minimalist",
|
||||
"design",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/clouse-up-beautiful-woman-enjoying-breakfast_23-2149063288.jpg",
|
||||
},
|
||||
{
|
||||
title: "24/7 Expert Support",
|
||||
description: "We are here to assist with every setup and query.",
|
||||
tags: [
|
||||
"expert",
|
||||
"support",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/minimal-tech-setup-with-earbuds_58702-17226.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</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 HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroCenteredLogos
|
||||
avatarsSrc={[
|
||||
"http://img.b2bpic.net/free-photo/handsome-groom-classy-black-suit-stands-dark-room_8353-7083.jpg",
|
||||
"http://img.b2bpic.net/free-photo/portrait-male-car-mechanic-car-repair-shop_23-2150367574.jpg",
|
||||
"http://img.b2bpic.net/free-photo/entrepreneur-working-from-home-using-laptop-writing-notes-paper_482257-118438.jpg",
|
||||
"http://img.b2bpic.net/free-photo/mature-fbi-agent-work_1098-15346.jpg",
|
||||
"http://img.b2bpic.net/free-photo/businessman-with-colleague_1098-14876.jpg",
|
||||
]}
|
||||
avatarText="Trusted by over 10,000 customers"
|
||||
title="Elevate Your Home with Smart Digital Products"
|
||||
description="Discover high-performance laptops, cameras, and innovative home appliances designed to streamline your lifestyle."
|
||||
primaryButton={{
|
||||
text: "Browse Collections",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#contact",
|
||||
}}
|
||||
names={["Apple Authorized Reseller","Samsung Partner","Sony Certified","Norton Secured","McAfee Secure","PCI DSS Compliant"]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/still-life-wireless-cyberpunk-headphones_23-2151072230.jpg"
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
41
src/pages/HomePage/sections/Metrics.tsx
Normal file
41
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,41 @@
|
||||
// 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 MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="Our Impact"
|
||||
title="Delivering Excellence Daily"
|
||||
description="Our numbers reflect our commitment to your satisfaction and innovation."
|
||||
metrics={[
|
||||
{
|
||||
value: "10k+",
|
||||
title: "Happy Users",
|
||||
description: "Customers trusting our digital ecosystem.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-photo-camera-indoors-still-life_23-2150630618.jpg",
|
||||
},
|
||||
{
|
||||
value: "500+",
|
||||
title: "Products Listed",
|
||||
description: "Curated tech gear for your needs.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/different-gadgets-table_1161-103.jpg",
|
||||
},
|
||||
{
|
||||
value: "24/7",
|
||||
title: "Active Support",
|
||||
description: "Always ready to help you thrive.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-horizontal-bluetooth-speaker-with-simple-minimal-modern-design_23-2150808002.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
65
src/pages/HomePage/sections/Products.tsx
Normal file
65
src/pages/HomePage/sections/Products.tsx
Normal file
@@ -0,0 +1,65 @@
|
||||
// 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="Essential Gear"
|
||||
title="Everything for Your Modern Life"
|
||||
description="Innovative products for work, creativity, and home efficiency."
|
||||
items={[
|
||||
{
|
||||
title: "High-Performance Laptops",
|
||||
description: "Powerful machines built for professionals.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/laptop-screen-template-with-hacking-concept_23-2148165945.jpg",
|
||||
},
|
||||
{
|
||||
title: "Professional Cameras",
|
||||
description: "Capture the world in stunning detail.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-photo-camera-still-life_23-2150630674.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smart Kitchen Tech",
|
||||
description: "Elevate your morning routine.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-young-man-leaning-wooden-kitchen-counter-looking-smart-phone_23-2148042730.jpg",
|
||||
},
|
||||
{
|
||||
title: "Audio Essentials",
|
||||
description: "Immersive sound for every occasion.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-tech-device_23-2150722643.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smart Home Hubs",
|
||||
description: "The center of your connected home.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/white-wireless-earbuds-with-case_53876-96327.jpg",
|
||||
},
|
||||
{
|
||||
title: "Digital Storage",
|
||||
description: "Secure space for all your files.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-storage-devices-assortment_23-2149319330.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smart Wearables",
|
||||
description: "Tech that moves with you.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smart-watch-contactless-cashless-payment_53876-97186.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
58
src/pages/HomePage/sections/Testimonials.tsx
Normal file
58
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,58 @@
|
||||
// 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="What They Say"
|
||||
title="Trusted by Experts"
|
||||
description="See why professionals trust our products."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Creative Director",
|
||||
quote: "The laptop I bought is incredible, perfect for my design workflow.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/positive-confident-businesswoman-wearing-formal-suit-standing-with-arms-folded_74855-10328.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael Chen",
|
||||
role: "Photographer",
|
||||
quote: "Top-tier camera gear. Delivery was fast and quality is outstanding.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-editing-her-product-photos_23-2149060884.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily Rodriguez",
|
||||
role: "Home Chef",
|
||||
quote: "My smart coffee maker has transformed my kitchen. Simply brilliant.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/attractive-european-girl-with-charming-smile-keeps-arms-folded-wears-round-spectacles_273609-18493.jpg",
|
||||
},
|
||||
{
|
||||
name: "David Kim",
|
||||
role: "Software Engineer",
|
||||
quote: "Reliable hardware that just works every single day.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-confident-man_176474-85918.jpg",
|
||||
},
|
||||
{
|
||||
name: "Rachel P.",
|
||||
role: "Tech Blogger",
|
||||
quote: "The bento grid navigation helped me find the perfect accessories fast.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-woman-with-white-headphones-smoothie-table_1157-2110.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user