Compare commits
8 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| a3bd74d8ef | |||
|
|
760b4b1bc0 | ||
| d1b1fb1e8d | |||
|
|
4b51b60a15 | ||
| c981f2a42d | |||
|
|
d579c043c2 | ||
| 684ce25800 | |||
| ae47511062 |
@@ -45,7 +45,7 @@ export default function Layout() {
|
||||
<NavbarInline
|
||||
logo="San Jose Drain & Main"
|
||||
ctaButton={{
|
||||
text: "Call Now",
|
||||
text: "(408) 854-2863",
|
||||
href: "tel:4088542863",
|
||||
}}
|
||||
navItems={navItems} />
|
||||
@@ -56,7 +56,7 @@ export default function Layout() {
|
||||
<SectionErrorBoundary name="footer">
|
||||
<FooterMinimal
|
||||
brand="San Jose Drain & Main"
|
||||
copyright="© 2024 San Jose Drain & Main. All rights reserved."
|
||||
copyright="© 2024 San Jose Drain & Main. All rights reserved. | (408) 854-2863"
|
||||
socialLinks={[
|
||||
{
|
||||
icon: Instagram,
|
||||
|
||||
@@ -1,118 +1,33 @@
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import HeroBrand from '@/components/sections/hero/HeroBrand';
|
||||
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 FeaturesSection from './HomePage/sections/Features';
|
||||
import ServicesSection from './HomePage/sections/Services';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import ReviewsSection from './HomePage/sections/Reviews';
|
||||
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">
|
||||
<HeroBrand
|
||||
brand="San Jose's 5-Star Plumbing Experts"
|
||||
description="Trusted by homeowners throughout San Jose for honest service, expert diagnostics, fair pricing, and lasting repairs."
|
||||
primaryButton={{ text: "Call Now", href: "tel:4088542863" }}
|
||||
secondaryButton={{ text: "Get Free Estimate", href: "#contact" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/plumbing-professional-doing-his-job_23-2150721574.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesTaggedCards
|
||||
tag="Our Commitment"
|
||||
title="Why Homeowners Trust San Jose Drain & Main"
|
||||
description="We deliver superior service with honesty, speed, and precision."
|
||||
items={[
|
||||
{ tag: "Diagnosis", title: "Expert Diagnostics", description: "We find the real problem, not just the symptoms.", primaryButton: { text: "Learn More", href: "#" }, imageSrc: "http://img.b2bpic.net/free-photo/wrench-connectors-with-clear-paper_23-2147772281.jpg" },
|
||||
{ tag: "Pricing", title: "Honest Pricing", description: "No pressure. No gimmicks. Fair recommendations.", primaryButton: { text: "Learn More", href: "#" }, imageSrc: "http://img.b2bpic.net/free-vector/finance-money-analytics-flat-retro-illustrations_1284-42712.jpg" },
|
||||
{ tag: "Service", title: "Fast Response", description: "Quick service when plumbing issues can't wait.", primaryButton: { text: "Learn More", href: "#" }, imageSrc: "http://img.b2bpic.net/free-photo/speed-meter-extreme-scale-fast_53876-120604.jpg" },
|
||||
{ tag: "Quality", title: "Quality Workmanship", description: "Repairs and installations done correctly the first time.", primaryButton: { text: "Learn More", href: "#" }, imageSrc: "http://img.b2bpic.net/free-vector/illustration-customer-service-concept_53876-5882.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesImageBento
|
||||
tag="Our Services"
|
||||
title="Comprehensive Plumbing Solutions"
|
||||
description="Expert services to keep your home's infrastructure running smoothly."
|
||||
items={[
|
||||
{ title: "Main Sewer Line Repair", description: "Tree root removal and complete inspections.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-attractive-hispanic-handyman-writing-work-estimate-before-fixing-kitchen-sink_662251-2690.jpg" },
|
||||
{ title: "Drain Cleaning", description: "Fast, effective clearing of all household drains.", imageSrc: "http://img.b2bpic.net/free-photo/interior-modern-bathroom-with-window-overlooking-city_169016-26703.jpg" },
|
||||
{ title: "Leak Detection", description: "Locate and repair hidden water leaks.", imageSrc: "http://img.b2bpic.net/free-photo/solution-top-view-man-plumber-overalls-fixing-breakdown-sink_259150-58267.jpg" },
|
||||
{ title: "Water Main Repair", description: "Underground water line services.", imageSrc: "http://img.b2bpic.net/free-photo/female-plumber-working-fix-problems-client-s-house_23-2150990731.jpg" },
|
||||
{ title: "Water Softener", description: "Protect plumbing with water softening.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-as-plumber_23-2150746316.jpg" },
|
||||
{ title: "Faucet Repair", description: "Expert fixture and faucet replacement.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-bathtub-with-faucet_1203-1500.jpg" },
|
||||
{ title: "Bathroom Plumbing", description: "Full bathroom repair and install.", imageSrc: "http://img.b2bpic.net/free-photo/electrician-is-mounting-electric-sockets-white-wall-indoors_169016-17657.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ServicesSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Meet Giovani"
|
||||
quote="Known throughout San Jose for his honesty, expertise, and professionalism, Giovani has built a reputation for solving difficult plumbing problems that other contractors miss."
|
||||
author="Giovani"
|
||||
role="Lead Technician & Owner"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/male-worker-construction-wearing-protection-gear_23-2148784062.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="reviews" data-section="reviews">
|
||||
<SectionErrorBoundary name="reviews">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Verified Reviews"
|
||||
title="What Our Neighbors Say"
|
||||
description="Consistently rated 5.0 for professional service."
|
||||
testimonials={[
|
||||
{ name: "Ayesha Mughal", role: "Homeowner", quote: "Giovani is simply the best. He is responsive, honest, and takes the time to explain everything.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-woman-black-jacket-happy-short-haired-girl-dark-suit-widely-sincerely-smiles-isolated-background_197531-18508.jpg" },
|
||||
{ name: "Mei Zhu", role: "Homeowner", quote: "One of the best plumbers I've worked with. Extremely efficient and solved our leak quickly.", imageSrc: "http://img.b2bpic.net/free-photo/confident-african-businesswoman-smiling-closeup-portrait-jobs-career-campaign_53876-129412.jpg" },
|
||||
{ name: "Ali S", role: "Homeowner", quote: "After another plumber overcharged us, Giovanni came in and completed the job correctly.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-young-businesswoman_23-2149153829.jpg" },
|
||||
{ name: "Elaine Chang", role: "Homeowner", quote: "Hands down, San Jose Drain & Main is the real deal.", imageSrc: "http://img.b2bpic.net/free-photo/expressive-senior-female-posing-indoor_344912-360.jpg" },
|
||||
{ name: "Ohad Mosafi", role: "Homeowner", quote: "Responded quickly and unclogged our sewer line from tree roots within 30 minutes.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-african-american-woman-cafe_273609-5064.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ReviewsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Common Questions"
|
||||
title="Everything You Need to Know"
|
||||
description="Get answers to your most frequent plumbing concerns."
|
||||
items={[
|
||||
{ question: "Why is my water pressure low?", answer: "Low pressure can be caused by pipe corrosion, leaks, or regulator issues. We provide expert diagnostics to identify the cause." },
|
||||
{ question: "How do I know if I have a sewer line problem?", answer: "Common signs include frequent clogs, slow drainage, or lush green patches in your yard." },
|
||||
{ question: "Do tree roots damage sewer lines?", answer: "Yes, tree roots are a primary cause of sewer line blockages and damage in San Jose properties." },
|
||||
{ question: "How quickly can you respond?", answer: "We prioritize fast response times to prevent plumbing issues from escalating into expensive damage." },
|
||||
{ question: "Do you provide estimates?", answer: "Yes, we provide transparent pricing and clear estimates before any work begins." }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Schedule Service"
|
||||
text="Need a Trusted Plumber Today? Join dozens of San Jose homeowners who trust San Jose Drain & Main."
|
||||
primaryButton={{ text: "Call (408) 854-2863", href: "tel:4088542863" }}
|
||||
secondaryButton={{ text: "Schedule Service", href: "#contact" }}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.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 "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import SectionErrorBoundary from '@/components/ui/SectionErrorBoundary';
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Meet Giovani"
|
||||
quote="Known throughout San Jose for his honesty, expertise, and professionalism, Giovani has built a reputation for solving difficult plumbing problems that other contractors miss."
|
||||
author="Giovani"
|
||||
role="Lead Technician & Owner"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/male-worker-construction-wearing-protection-gear_23-2148784062.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Contact.tsx
Normal file
21
src/pages/HomePage/sections/Contact.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 "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="Schedule Service"
|
||||
text="Need a Trusted Plumber Today? Join dozens of San Jose homeowners who trust San Jose Drain & Main."
|
||||
primaryButton={{ text: "Call (408) 854-2863", href: "tel:4088542863" }}
|
||||
secondaryButton={{ text: "Schedule Service", href: "#contact" }}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Faq.tsx
Normal file
27
src/pages/HomePage/sections/Faq.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 "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="Common Questions"
|
||||
title="Everything You Need to Know"
|
||||
description="Get answers to your most frequent plumbing concerns."
|
||||
items={[
|
||||
{ question: "Why is my water pressure low?", answer: "Low pressure can be caused by pipe corrosion, leaks, or regulator issues. We provide expert diagnostics to identify the cause." },
|
||||
{ question: "How do I know if I have a sewer line problem?", answer: "Common signs include frequent clogs, slow drainage, or lush green patches in your yard." },
|
||||
{ question: "Do tree roots damage sewer lines?", answer: "Yes, tree roots are a primary cause of sewer line blockages and damage in San Jose properties." },
|
||||
{ question: "How quickly can you respond?", answer: "We prioritize fast response times to prevent plumbing issues from escalating into expensive damage." },
|
||||
{ question: "Do you provide estimates?", answer: "Yes, we provide transparent pricing and clear estimates before any work begins." }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
26
src/pages/HomePage/sections/Features.tsx
Normal file
26
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
// 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 FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import SectionErrorBoundary from '@/components/ui/SectionErrorBoundary';
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesTaggedCards
|
||||
tag="Our Commitment"
|
||||
title="Why Homeowners Trust San Jose Drain & Main"
|
||||
description="We deliver superior service with honesty, speed, and precision."
|
||||
items={[
|
||||
{ tag: "Diagnosis", title: "Expert Diagnostics", description: "We find the real problem, not just the symptoms.", primaryButton: { text: "Learn More", href: "#" }, imageSrc: "http://img.b2bpic.net/free-photo/wrench-connectors-with-clear-paper_23-2147772281.jpg" },
|
||||
{ tag: "Pricing", title: "Honest Pricing", description: "No pressure. No gimmicks. Fair recommendations.", primaryButton: { text: "Learn More", href: "#" }, imageSrc: "http://img.b2bpic.net/free-vector/finance-money-analytics-flat-retro-illustrations_1284-42712.jpg" },
|
||||
{ tag: "Service", title: "Fast Response", description: "Quick service when plumbing issues can't wait.", primaryButton: { text: "Learn More", href: "#" }, imageSrc: "http://img.b2bpic.net/free-photo/speed-meter-extreme-scale-fast_53876-120604.jpg" },
|
||||
{ tag: "Quality", title: "Quality Workmanship", description: "Repairs and installations done correctly the first time.", primaryButton: { text: "Learn More", href: "#" }, imageSrc: "http://img.b2bpic.net/free-vector/illustration-customer-service-concept_53876-5882.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Hero.tsx
Normal file
22
src/pages/HomePage/sections/Hero.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 "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroBrand from '@/components/sections/hero/HeroBrand';
|
||||
import SectionErrorBoundary from '@/components/ui/SectionErrorBoundary';
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBrand
|
||||
brand="San Jose Drain & Main"
|
||||
description="San Jose's 5-Star Plumbing Experts. Trusted by homeowners throughout San Jose for honest service, expert diagnostics, fair pricing, and lasting repairs."
|
||||
primaryButton={{ text: "Call Now", href: "tel:4088542863" }}
|
||||
secondaryButton={{ text: "Get Free Estimate", href: "#contact" }}
|
||||
imageSrc="https://images.unsplash.com/photo-1620626011761-996317b8d101?q=80&w=2069&auto=format&fit=crop"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Reviews.tsx
Normal file
27
src/pages/HomePage/sections/Reviews.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 "reviews" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
import SectionErrorBoundary from '@/components/ui/SectionErrorBoundary';
|
||||
|
||||
export default function ReviewsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="reviews" data-section="reviews">
|
||||
<SectionErrorBoundary name="reviews">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Verified Reviews"
|
||||
title="What Our Neighbors Say"
|
||||
description="Consistently rated 5.0 for professional service."
|
||||
testimonials={[
|
||||
{ name: "Ayesha Mughal", role: "Homeowner", quote: "Giovani is simply the best. He is responsive, honest, and takes the time to explain everything.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-woman-black-jacket-happy-short-haired-girl-dark-suit-widely-sincerely-smiles-isolated-background_197531-18508.jpg" },
|
||||
{ name: "Mei Zhu", role: "Homeowner", quote: "One of the best plumbers I've worked with. Extremely efficient and solved our leak quickly.", imageSrc: "http://img.b2bpic.net/free-photo/confident-african-businesswoman-smiling-closeup-portrait-jobs-career-campaign_53876-129412.jpg" },
|
||||
{ name: "Ali S", role: "Homeowner", quote: "After another plumber overcharged us, Giovanni came in and completed the job correctly.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-young-businesswoman_23-2149153829.jpg" },
|
||||
{ name: "Elaine Chang", role: "Homeowner", quote: "Hands down, San Jose Drain & Main is the real deal.", imageSrc: "http://img.b2bpic.net/free-photo/expressive-senior-female-posing-indoor_344912-360.jpg" },
|
||||
{ name: "Ohad Mosafi", role: "Homeowner", quote: "Responded quickly and unclogged our sewer line from tree roots within 30 minutes.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-african-american-woman-cafe_273609-5064.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Services.tsx
Normal file
29
src/pages/HomePage/sections/Services.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// 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 FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from '@/components/ui/SectionErrorBoundary';
|
||||
|
||||
export default function ServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesImageBento
|
||||
tag="Our Services"
|
||||
title="Comprehensive Plumbing Solutions"
|
||||
description="Expert services to keep your home's infrastructure running smoothly."
|
||||
items={[
|
||||
{ title: "Main Sewer Line Repair", description: "Tree root removal and complete inspections.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-attractive-hispanic-handyman-writing-work-estimate-before-fixing-kitchen-sink_662251-2690.jpg" },
|
||||
{ title: "Drain Cleaning", description: "Fast, effective clearing of all household drains.", imageSrc: "http://img.b2bpic.net/free-photo/interior-modern-bathroom-with-window-overlooking-city_169016-26703.jpg" },
|
||||
{ title: "Leak Detection", description: "Locate and repair hidden water leaks.", imageSrc: "http://img.b2bpic.net/free-photo/solution-top-view-man-plumber-overalls-fixing-breakdown-sink_259150-58267.jpg" },
|
||||
{ title: "Water Main Repair", description: "Underground water line services.", imageSrc: "http://img.b2bpic.net/free-photo/female-plumber-working-fix-problems-client-s-house_23-2150990731.jpg" },
|
||||
{ title: "Water Softener", description: "Protect plumbing with water softening.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-as-plumber_23-2150746316.jpg" },
|
||||
{ title: "Faucet Repair", description: "Expert fixture and faucet replacement.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-bathtub-with-faucet_1203-1500.jpg" },
|
||||
{ title: "Bathroom Plumbing", description: "Full bathroom repair and install.", imageSrc: "http://img.b2bpic.net/free-photo/electrician-is-mounting-electric-sockets-white-wall-indoors_169016-17657.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user