/** * @license * SPDX-License-Identifier: Apache-2.0 */ import React, { useState, useEffect, useRef } from 'react'; import { motion, useScroll, useSpring, AnimatePresence } from 'motion/react'; import { Phone, MessageCircle, Mail, Facebook, Instagram, Linkedin, Twitter, Droplets, Wrench, CheckCircle2, Star, MapPin, Clock, Menu, X, ChevronRight, ExternalLink } from 'lucide-react'; import { BUSINESS_INFO, SERVICES, PORTFOLIO, BLOGS, REVIEWS, getPlumberImage } from './constants'; // --- Components --- const GlassCard = ({ children, className = "" }: { children: React.ReactNode, className?: string }) => ( {children} ); const SectionTitle = ({ title, subtitle }: { title: string, subtitle?: string }) => (
{title} {subtitle && ( {subtitle} )}
); const FloatingTools = () => { const tools = [Wrench, Droplets, Wrench, Droplets]; return (
{tools.map((Icon, i) => ( ))}
); }; export default function App() { const [isMenuOpen, setIsMenuOpen] = useState(false); const [scrolled, setScrolled] = useState(false); const { scrollYProgress } = useScroll(); const scaleX = useSpring(scrollYProgress, { stiffness: 100, damping: 30, restDelta: 0.001 }); useEffect(() => { const handleScroll = () => setScrolled(window.scrollY > 50); window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, []); const scrollToSection = (id: string) => { const element = document.getElementById(id); if (element) { element.scrollIntoView({ behavior: 'smooth' }); setIsMenuOpen(false); } }; return (
{/* Background Image Overlay */}
{/* Progress Bar */} {/* Navbar */} {/* Mobile Menu Overlay */} {isMenuOpen && ( {['Services', 'Portfolio', 'Reviews', 'Blog', 'Contact'].map((item) => ( ))} )} {/* Hero Section */}
{BUSINESS_INFO.serviceArea}

Fast & Reliable
Plumbing Services
Across Bangalore

Available 24/7 for All Plumbing Problems – Small or Big.
Professional, Trustworthy, and Affordable.

Call Now WhatsApp

"Customers can call or WhatsApp anytime for free consultation or to ask any plumbing questions."

{/* Scroll Indicator */}
{/* Services Section */}
{SERVICES.map((service, i) => (

{service.title}

{service.description}

{service.title}
))}
{/* Portfolio Section */}
{PORTFOLIO.map((project, i) => (
{project.area}
{project.area}

Problem: {project.problem}

Work Done: {project.work}

Before & After: {project.beforeAfter}

Result: {project.result}

))}
{/* Reviews Section */}
{[1, 2, 3, 4, 5].map(s => )} 4.8 Overall Rating
{REVIEWS.slice(0, 9).map((review, i) => (

{review.name}

{review.area}

{Array.from({ length: review.rating }).map((_, i) => ( ))}

"{review.text}"

))}

+41 more reviews from satisfied customers across Bangalore

{/* Blog Section */}
{BLOGS.map((blog, i) => (

{blog.title}

{blog.excerpt}

Read More
))}
{/* Contact Section */}

Contact Information

Follow Us

{[ { icon: Facebook, link: BUSINESS_INFO.socials.facebook, color: 'bg-blue-600' }, { icon: Instagram, link: BUSINESS_INFO.socials.instagram, color: 'bg-pink-600' }, { icon: Linkedin, link: BUSINESS_INFO.socials.linkedin, color: 'bg-blue-700' }, { icon: Twitter, link: BUSINESS_INFO.socials.twitter, color: 'bg-sky-500' } ].map((social, i) => ( ))}