Merge version_2_1782169200670 into main #2
@@ -1,100 +1,27 @@
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import HeroSplit from '@/components/sections/hero/HeroSplit';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
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 SocialProofSection from './HomePage/sections/SocialProof';
|
||||
import ServicesSection from './HomePage/sections/Services';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import CtaSection from './HomePage/sections/Cta';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplit
|
||||
tag="HOSUR & BANGALORE · WEDDING & DESTINATION FILMS"
|
||||
title="Every Frame, A Story Worth Keeping."
|
||||
description="We capture weddings, love stories, portraits, and brand films — raw, real, and cinematic. Based in Hosur & Bangalore, shooting across South India."
|
||||
primaryButton={{
|
||||
text: "View Portfolio", href: "/portfolio"}}
|
||||
secondaryButton={{
|
||||
text: "Book a Shoot", href: "/book"}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/diwali-festival-lights-tradition_23-2148688458.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="What Clients Say"
|
||||
title="Stories Captured"
|
||||
description="Trusted by couples across the region."
|
||||
names={[
|
||||
"Gangeshwaran was really patient — felt like a family experience · ⭐⭐⭐⭐⭐", "You deserve a 5-star rating · ⭐⭐⭐⭐⭐", "Photography at our Mehandi was exceptional · ⭐⭐⭐⭐⭐", "Naturally captured every single moment · ⭐⭐⭐⭐⭐", "Outstanding work — too happy with the results · ⭐⭐⭐⭐⭐"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialProofSection />
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesDetailedCards
|
||||
tag="What We Create"
|
||||
title="From intimate weddings to world-class brand films."
|
||||
description="Our work is defined by patience, respect for the moment, and an obsession with light."
|
||||
items={[
|
||||
{
|
||||
title: "Weddings", description: "Candid, traditional, and cinematic coverage of your most sacred day.", tags: ["Weddings", "Candid", "Cinematic"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/veil-covers-bride-s-face-tender-while-she-stands-before-window_8353-8405.jpg"},
|
||||
{
|
||||
title: "Pre-Wedding & Couples", description: "Love stories told across stunning locations — beaches, temples, cities, fields.", tags: ["Couples", "Pre-wedding"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-kissing-sunset_1153-8901.jpg"},
|
||||
{
|
||||
title: "Bridal & Portraits", description: "Timeless portraits that capture beauty, grace, and personality.", tags: ["Bridal", "Portraits"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-handsome-man-with-long-blonde-hair-wearing-red-jacket_23-2149020145.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ServicesSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="Testimonials"
|
||||
title="What Clients Say"
|
||||
description="Rated 5★ across all client reviews."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Vidya Sree", role: "Client", quote: "Your photography at our cousin's Mehandi was exceptional, capturing the essence of each moment with remarkable skill.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-wearing-minimalist-shirt_23-2149317771.jpg"},
|
||||
{
|
||||
name: "Madhumitha Prakash", role: "Client", quote: "We really loved your work and all the moments are amazingly captured. You didn't even interrupt us during the pooja.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-fashionable-boy-front-white-curtain_23-2148184871.jpg"},
|
||||
{
|
||||
name: "Anonymous Client", role: "Client", quote: "Gangeshwaran was really patient taking every photo. We truly felt a family-like experience with him.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-stylish-woman-posing-fashionable-outfit_23-2149021799.jpg"},
|
||||
{
|
||||
name: "Anonymous Client", role: "Client", quote: "Dear Gangesh, you deserve a 5-star rating. You take incredible photos. The pictures were delivered in a lovely way.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/confident-beautiful-young-businesswoman-looking-camera-head-shot-portrait_1163-4928.jpg"},
|
||||
{
|
||||
name: "Anonymous Client", role: "Client", quote: "Highly recommended for any functions. Capturing every single moment naturally.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-blonde-short-haired-woman-posing-white-shirt_23-2149021781.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="cta" data-section="cta">
|
||||
<SectionErrorBoundary name="cta">
|
||||
<ContactCta
|
||||
tag="Book Now"
|
||||
text="Your Story Deserves to Be Told Right. Let's create something unforgettable together."
|
||||
primaryButton={{
|
||||
text: "Book a Shoot", href: "/book"}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Us", href: "https://wa.me/918608824373"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<CtaSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
23
src/pages/HomePage/sections/Cta.tsx
Normal file
23
src/pages/HomePage/sections/Cta.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "cta" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function CtaSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="cta" data-section="cta">
|
||||
<SectionErrorBoundary name="cta">
|
||||
<ContactCta
|
||||
tag="Book Now"
|
||||
text="Your Story Deserves to Be Told Right. Let's create something unforgettable together."
|
||||
primaryButton={{
|
||||
text: "Book a Shoot", href: "/book"}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Us", href: "https://wa.me/918608824373"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Hero.tsx
Normal file
25
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
// 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 HeroSplit from '@/components/sections/hero/HeroSplit';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplit
|
||||
tag="HOSUR & BANGALORE · WEDDING & DESTINATION FILMS"
|
||||
title="Every Frame, A Story Worth Keeping."
|
||||
description="We capture weddings, love stories, portraits, and brand films — raw, real, and cinematic. Based in Hosur & Bangalore, shooting across South India."
|
||||
primaryButton={{
|
||||
text: "View Portfolio", href: "/portfolio"}}
|
||||
secondaryButton={{
|
||||
text: "Book a Shoot", href: "/book"}}
|
||||
imageSrc="https://storage.googleapis.com/webild/users/user_3FVmhOgWYvShRUgYIi5bDppvMaQ/uploaded-1782169199091-zymc34rg.png"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Services.tsx
Normal file
21
src/pages/HomePage/sections/Services.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// 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 FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesDetailedCards
|
||||
tag="What We Create"
|
||||
title="From intimate weddings to world-class brand films."
|
||||
description="Our work is defined by patience, respect for the moment, and an obsession with light."
|
||||
items={[{"title":"Weddings","tags":["Weddings","Candid","Cinematic"],"imageSrc":"https://storage.googleapis.com/webild/users/user_3FVmhOgWYvShRUgYIi5bDppvMaQ/uploaded-1782169199093-z3qkw9gl.png","description":"Candid, traditional, and cinematic coverage of your most sacred day."},{"title":"Pre-Wedding & Couples","tags":["Couples","Pre-wedding"],"imageSrc":"https://storage.googleapis.com/webild/users/user_3FVmhOgWYvShRUgYIi5bDppvMaQ/uploaded-1782169199095-jpv8caji.png","description":"Love stories told across stunning locations — beaches, temples, cities, fields."},{"tags":["Bridal","Portraits"],"title":"Bridal & Portraits","imageSrc":"https://storage.googleapis.com/webild/users/user_3FVmhOgWYvShRUgYIi5bDppvMaQ/uploaded-1782169199096-jyxiofdx.png","description":"Timeless portraits that capture beauty, grace, and personality."}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/SocialProof.tsx
Normal file
22
src/pages/HomePage/sections/SocialProof.tsx
Normal file
@@ -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 (
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="What Clients Say"
|
||||
title="Stories Captured"
|
||||
description="Trusted by couples across the region."
|
||||
names={[
|
||||
"Gangeshwaran was really patient — felt like a family experience · ⭐⭐⭐⭐⭐", "You deserve a 5-star rating · ⭐⭐⭐⭐⭐", "Photography at our Mehandi was exceptional · ⭐⭐⭐⭐⭐", "Naturally captured every single moment · ⭐⭐⭐⭐⭐", "Outstanding work — too happy with the results · ⭐⭐⭐⭐⭐"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Testimonials.tsx
Normal file
37
src/pages/HomePage/sections/Testimonials.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 "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="Testimonials"
|
||||
title="What Clients Say"
|
||||
description="Rated 5★ across all client reviews."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Vidya Sree", role: "Client", quote: "Your photography at our cousin's Mehandi was exceptional, capturing the essence of each moment with remarkable skill.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-wearing-minimalist-shirt_23-2149317771.jpg"},
|
||||
{
|
||||
name: "Madhumitha Prakash", role: "Client", quote: "We really loved your work and all the moments are amazingly captured. You didn't even interrupt us during the pooja.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-fashionable-boy-front-white-curtain_23-2148184871.jpg"},
|
||||
{
|
||||
name: "Anonymous Client", role: "Client", quote: "Gangeshwaran was really patient taking every photo. We truly felt a family-like experience with him.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-stylish-woman-posing-fashionable-outfit_23-2149021799.jpg"},
|
||||
{
|
||||
name: "Anonymous Client", role: "Client", quote: "Dear Gangesh, you deserve a 5-star rating. You take incredible photos. The pictures were delivered in a lovely way.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/confident-beautiful-young-businesswoman-looking-camera-head-shot-portrait_1163-4928.jpg"},
|
||||
{
|
||||
name: "Anonymous Client", role: "Client", quote: "Highly recommended for any functions. Capturing every single moment naturally.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-blonde-short-haired-woman-posing-white-shirt_23-2149021781.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user