/**
* @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.
"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}
))}
{/* Portfolio Section */}
{PORTFOLIO.map((project, i) => (
{project.area}
Problem: {project.problem}
Work Done: {project.work}
Before & After: {project.beforeAfter}
))}
{/* 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 */}
{/* Footer */}
{/* Sticky Mobile Bar */}
);
}