Merge version_4 into main #6
166
src/app/page.tsx
166
src/app/page.tsx
@@ -19,6 +19,10 @@ export default function LandingPage() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleRequestService = async (email: string) => {
|
const handleRequestService = async (email: string) => {
|
||||||
|
if (!email || !email.includes('@')) {
|
||||||
|
alert('Please enter a valid email address.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const response = await fetch('/api/request-service', {
|
const response = await fetch('/api/request-service', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@@ -32,6 +36,7 @@ export default function LandingPage() {
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error:', error);
|
console.error('Error:', error);
|
||||||
|
alert('An error occurred. Please try again.');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -52,16 +57,11 @@ export default function LandingPage() {
|
|||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarStyleFullscreen
|
<NavbarStyleFullscreen
|
||||||
navItems={[
|
navItems={[
|
||||||
{
|
{ name: "Home", id: "hero" },
|
||||||
name: "Home", id: "hero"},
|
{ name: "About", id: "about" },
|
||||||
{
|
{ name: "Services", id: "features" },
|
||||||
name: "About", id: "about"},
|
{ name: "Testimonials", id: "testimonials" },
|
||||||
{
|
{ name: "Contact", id: "contact" },
|
||||||
name: "Services", id: "features"},
|
|
||||||
{
|
|
||||||
name: "Testimonials", id: "testimonials"},
|
|
||||||
{
|
|
||||||
name: "Contact", id: "contact"},
|
|
||||||
]}
|
]}
|
||||||
brandName="Cut Rate Plumbing"
|
brandName="Cut Rate Plumbing"
|
||||||
/>
|
/>
|
||||||
@@ -69,29 +69,20 @@ export default function LandingPage() {
|
|||||||
|
|
||||||
<div id="hero" data-section="hero">
|
<div id="hero" data-section="hero">
|
||||||
<HeroBillboardRotatedCarousel
|
<HeroBillboardRotatedCarousel
|
||||||
background={{
|
background={{ variant: "rotated-rays-animated" }}
|
||||||
variant: "rotated-rays-animated"}}
|
|
||||||
title="Fast & Affordable Plumbing Services in Michigan"
|
title="Fast & Affordable Plumbing Services in Michigan"
|
||||||
description="Trusted local plumbers providing expert plumbing repairs, drain cleaning, sewer repair, water heater services, and emergency plumbing solutions for over 25 years."
|
description="Trusted local plumbers providing expert plumbing repairs, drain cleaning, sewer repair, water heater services, and emergency plumbing solutions for over 25 years."
|
||||||
buttons={[
|
buttons={[
|
||||||
{
|
{ text: "Call Now", onClick: handleCallNow },
|
||||||
text: "Call Now", onClick: handleCallNow},
|
{ text: "Request Service", href: "#contact" },
|
||||||
{
|
|
||||||
text: "Request Service", href: "#contact"},
|
|
||||||
]}
|
]}
|
||||||
carouselItems={[
|
carouselItems={[
|
||||||
{
|
{ id: "h1", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-as-plumber_23-2150746388.jpg?_wi=1", imageAlt: "Professional residential plumbing repair" },
|
||||||
id: "h1", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-as-plumber_23-2150746388.jpg?_wi=1", imageAlt: "Professional residential plumbing repair"},
|
{ id: "h2", imageSrc: "http://img.b2bpic.net/free-photo/close-up-men-working-together_23-2148752013.jpg", imageAlt: "Plumbing service van" },
|
||||||
{
|
{ id: "h3", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-man-working-as-plumber_23-2150746421.jpg", imageAlt: "Fixing leaking kitchen pipes" },
|
||||||
id: "h2", imageSrc: "http://img.b2bpic.net/free-photo/close-up-men-working-together_23-2148752013.jpg", imageAlt: "Plumbing service van"},
|
{ id: "h4", imageSrc: "http://img.b2bpic.net/free-photo/plumbing-professional-doing-his-job_23-2150721516.jpg", imageAlt: "Plumbing expert working with tools" },
|
||||||
{
|
{ id: "h5", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-working_23-2149908142.jpg", imageAlt: "Residential pipe maintenance" },
|
||||||
id: "h3", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-man-working-as-plumber_23-2150746421.jpg", imageAlt: "Fixing leaking kitchen pipes"},
|
{ id: "h6", imageSrc: "http://img.b2bpic.net/free-photo/portrait-craftsman_23-2148137743.jpg", imageAlt: "Professional plumbing solutions" },
|
||||||
{
|
|
||||||
id: "h4", imageSrc: "http://img.b2bpic.net/free-photo/plumbing-professional-doing-his-job_23-2150721516.jpg", imageAlt: "Plumbing expert working with tools"},
|
|
||||||
{
|
|
||||||
id: "h5", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-working_23-2149908142.jpg", imageAlt: "Residential pipe maintenance"},
|
|
||||||
{
|
|
||||||
id: "h6", imageSrc: "http://img.b2bpic.net/free-photo/portrait-craftsman_23-2148137743.jpg", imageAlt: "Professional plumbing solutions"},
|
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -101,15 +92,9 @@ export default function LandingPage() {
|
|||||||
useInvertedBackground={true}
|
useInvertedBackground={true}
|
||||||
title="Trusted Since 1992"
|
title="Trusted Since 1992"
|
||||||
metrics={[
|
metrics={[
|
||||||
{
|
{ icon: Award, label: "Years Experience", value: "30+" },
|
||||||
icon: Award,
|
{ icon: Users, label: "Happy Clients", value: "10,000+" },
|
||||||
label: "Years Experience", value: "30+"},
|
{ icon: Clock, label: "Response Time", value: "24/7" },
|
||||||
{
|
|
||||||
icon: Users,
|
|
||||||
label: "Happy Clients", value: "10,000+"},
|
|
||||||
{
|
|
||||||
icon: Clock,
|
|
||||||
label: "Response Time", value: "24/7"},
|
|
||||||
]}
|
]}
|
||||||
metricsAnimation="slide-up"
|
metricsAnimation="slide-up"
|
||||||
/>
|
/>
|
||||||
@@ -120,18 +105,10 @@ export default function LandingPage() {
|
|||||||
textboxLayout="default"
|
textboxLayout="default"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
features={[
|
features={[
|
||||||
{
|
{ title: "Plumbing Repairs", description: "Leak repairs, pipe replacement, and faucet fixes.", imageSrc: "http://img.b2bpic.net/free-photo/old-weathered-tire-covered-with-moss-sand-daytime_181624-20384.jpg?_wi=1", buttonIcon: Wrench },
|
||||||
title: "Plumbing Repairs", description: "Leak repairs, pipe replacement, and faucet fixes.", imageSrc: "http://img.b2bpic.net/free-photo/old-weathered-tire-covered-with-moss-sand-daytime_181624-20384.jpg?_wi=1", buttonIcon: Wrench,
|
{ title: "Drain Cleaning", description: "Professional snaking for kitchens and bathrooms.", imageSrc: "http://img.b2bpic.net/free-photo/person-carefully-soaping-hands-matte-black-kitchen-faucet-home-hygiene_169016-69668.jpg", buttonIcon: Zap },
|
||||||
},
|
{ title: "Sewer Services", description: "Line repair, replacement, and inspection.", imageSrc: "http://img.b2bpic.net/free-photo/mechanics-repairing-car-workshop_329181-11837.jpg", buttonIcon: Shield },
|
||||||
{
|
{ title: "Water Heaters", description: "Installation, repair, and tankless solutions.", imageSrc: "http://img.b2bpic.net/free-photo/view-plumber-working-fix-problems_23-2150990693.jpg", buttonIcon: Droplets },
|
||||||
title: "Drain Cleaning", description: "Professional snaking for kitchens and bathrooms.", imageSrc: "http://img.b2bpic.net/free-photo/person-carefully-soaping-hands-matte-black-kitchen-faucet-home-hygiene_169016-69668.jpg", buttonIcon: Zap,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Sewer Services", description: "Line repair, replacement, and inspection.", imageSrc: "http://img.b2bpic.net/free-photo/mechanics-repairing-car-workshop_329181-11837.jpg", buttonIcon: Shield,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Water Heaters", description: "Installation, repair, and tankless solutions.", imageSrc: "http://img.b2bpic.net/free-photo/view-plumber-working-fix-problems_23-2150990693.jpg", buttonIcon: Droplets,
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
title="Expert Plumbing Solutions"
|
title="Expert Plumbing Solutions"
|
||||||
description="Comprehensive residential and commercial plumbing services delivered with quality workmanship."
|
description="Comprehensive residential and commercial plumbing services delivered with quality workmanship."
|
||||||
@@ -145,18 +122,12 @@ export default function LandingPage() {
|
|||||||
gridVariant="three-columns-all-equal-width"
|
gridVariant="three-columns-all-equal-width"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
products={[
|
products={[
|
||||||
{
|
{ id: "p1", name: "Pipe Repair", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/workshop-table_23-2147773402.jpg" },
|
||||||
id: "p1", name: "Pipe Repair", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/workshop-table_23-2147773402.jpg"},
|
{ id: "p2", name: "Drain Snaking", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/plant-picture-clean-room-equipment-stainless-steel-machines_645730-298.jpg" },
|
||||||
{
|
{ id: "p3", name: "Sewer Line", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/technician-checking-heating-system-boiler-room_169016-55519.jpg" },
|
||||||
id: "p2", name: "Drain Snaking", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/plant-picture-clean-room-equipment-stainless-steel-machines_645730-298.jpg"},
|
{ id: "p4", name: "Water Heater", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-as-plumber_23-2150746386.jpg" },
|
||||||
{
|
{ id: "p5", name: "Sump Pump", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/plumber-making-time-out-gesture_1368-773.jpg" },
|
||||||
id: "p3", name: "Sewer Line", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/technician-checking-heating-system-boiler-room_169016-55519.jpg"},
|
{ id: "p6", name: "Emergency Pipe", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/technician-checking-heating-system-boiler-room_169016-55756.jpg" },
|
||||||
{
|
|
||||||
id: "p4", name: "Water Heater", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-as-plumber_23-2150746386.jpg"},
|
|
||||||
{
|
|
||||||
id: "p5", name: "Sump Pump", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/plumber-making-time-out-gesture_1368-773.jpg"},
|
|
||||||
{
|
|
||||||
id: "p6", name: "Emergency Pipe", price: "Contact for Pricing", imageSrc: "http://img.b2bpic.net/free-photo/technician-checking-heating-system-boiler-room_169016-55756.jpg"},
|
|
||||||
]}
|
]}
|
||||||
title="Featured Services"
|
title="Featured Services"
|
||||||
description="Our core residential and commercial offerings."
|
description="Our core residential and commercial offerings."
|
||||||
@@ -169,24 +140,9 @@ export default function LandingPage() {
|
|||||||
textboxLayout="default"
|
textboxLayout="default"
|
||||||
useInvertedBackground={true}
|
useInvertedBackground={true}
|
||||||
plans={[
|
plans={[
|
||||||
{
|
{ id: "std", title: "Standard Repair", price: "Custom", period: "/per service", features: ["Leak detection", "Fixture repair"], button: { text: "Call Now", onClick: handleCallNow }, imageSrc: "http://img.b2bpic.net/free-photo/plumbing-repair-service_181624-27146.jpg" },
|
||||||
id: "std", title: "Standard Repair", price: "Custom", period: "/per service", features: [
|
{ id: "adv", title: "Sewer/Drain", price: "Custom", period: "/per service", features: ["Drain cleaning", "Sewer line inspect"], button: { text: "Call Now", onClick: handleCallNow }, imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-as-plumber_23-2150746388.jpg?_wi=2" },
|
||||||
"Leak detection", "Fixture repair"],
|
{ id: "emg", title: "Emergency", price: "Call", period: "/24-7", features: ["Burst pipes", "Immediate response"], button: { text: "Call Now", onClick: handleCallNow }, imageSrc: "http://img.b2bpic.net/free-photo/old-weathered-tire-covered-with-moss-sand-daytime_181624-20384.jpg?_wi=2" },
|
||||||
button: {
|
|
||||||
text: "Call Now", onClick: handleCallNow},
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/plumbing-repair-service_181624-27146.jpg", imageAlt: "Plumbing repair service"},
|
|
||||||
{
|
|
||||||
id: "adv", title: "Sewer/Drain", price: "Custom", period: "/per service", features: [
|
|
||||||
"Drain cleaning", "Sewer line inspect"],
|
|
||||||
button: {
|
|
||||||
text: "Call Now", onClick: handleCallNow},
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-as-plumber_23-2150746388.jpg?_wi=2", imageAlt: "Plumbing repair service"},
|
|
||||||
{
|
|
||||||
id: "emg", title: "Emergency", price: "Call", period: "/24-7", features: [
|
|
||||||
"Burst pipes", "Immediate response"],
|
|
||||||
button: {
|
|
||||||
text: "Call Now", onClick: handleCallNow},
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/old-weathered-tire-covered-with-moss-sand-daytime_181624-20384.jpg?_wi=2", imageAlt: "Plumbing repair service"},
|
|
||||||
]}
|
]}
|
||||||
title="Simple & Honest Pricing"
|
title="Simple & Honest Pricing"
|
||||||
description="Affordable solutions for your plumbing needs."
|
description="Affordable solutions for your plumbing needs."
|
||||||
@@ -200,21 +156,11 @@ export default function LandingPage() {
|
|||||||
gridVariant="three-columns-all-equal-width"
|
gridVariant="three-columns-all-equal-width"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
testimonials={[
|
testimonials={[
|
||||||
{
|
{ id: "t1", name: "Sarah Johnson", role: "Homeowner", company: "Sterling Heights", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-businesswoman-office_329181-19343.jpg" },
|
||||||
id: "t1", name: "Sarah Johnson", role: "Homeowner", company: "Sterling Heights", rating: 5,
|
{ id: "t2", name: "Michael Chen", role: "Business Owner", company: "Warren", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/pleased-successful-female-administrator-office_273609-4124.jpg" },
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-businesswoman-office_329181-19343.jpg"},
|
{ id: "t3", name: "Emily Rodriguez", role: "Property Mgr", company: "Detroit", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/front-view-happy-man-showing-approval_23-2148230800.jpg" },
|
||||||
{
|
{ id: "t4", name: "David Kim", role: "Homeowner", company: "Michigan", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/man-overall-cap-smiling_23-2148073095.jpg" },
|
||||||
id: "t2", name: "Michael Chen", role: "Business Owner", company: "Warren", rating: 5,
|
{ id: "t5", name: "Lisa Wilson", role: "Homeowner", company: "Sterling Heights", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/cheerful-female-shoppers-staring-accessories-shop-window-holding-shopping-bags-standing-store-outside-front-view-through-glass-window-shopping-concept_74855-11592.jpg" },
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/pleased-successful-female-administrator-office_273609-4124.jpg"},
|
|
||||||
{
|
|
||||||
id: "t3", name: "Emily Rodriguez", role: "Property Mgr", company: "Detroit", rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-happy-man-showing-approval_23-2148230800.jpg"},
|
|
||||||
{
|
|
||||||
id: "t4", name: "David Kim", role: "Homeowner", company: "Michigan", rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/man-overall-cap-smiling_23-2148073095.jpg"},
|
|
||||||
{
|
|
||||||
id: "t5", name: "Lisa Wilson", role: "Homeowner", company: "Sterling Heights", rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-female-shoppers-staring-accessories-shop-window-holding-shopping-bags-standing-store-outside-front-view-through-glass-window-shopping-concept_74855-11592.jpg"},
|
|
||||||
]}
|
]}
|
||||||
title="What Our Clients Say"
|
title="What Our Clients Say"
|
||||||
description="Reliable plumbing services in Sterling Heights and Warren."
|
description="Reliable plumbing services in Sterling Heights and Warren."
|
||||||
@@ -224,8 +170,7 @@ export default function LandingPage() {
|
|||||||
<div id="contact" data-section="contact">
|
<div id="contact" data-section="contact">
|
||||||
<ContactSplit
|
<ContactSplit
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
background={{
|
background={{ variant: "plain" }}
|
||||||
variant: "plain"}}
|
|
||||||
tag="Contact Us"
|
tag="Contact Us"
|
||||||
title="Request Service"
|
title="Request Service"
|
||||||
description="Call us at (586) 795-9955 for urgent plumbing help."
|
description="Call us at (586) 795-9955 for urgent plumbing help."
|
||||||
@@ -238,30 +183,9 @@ export default function LandingPage() {
|
|||||||
<div id="footer" data-section="footer">
|
<div id="footer" data-section="footer">
|
||||||
<FooterSimple
|
<FooterSimple
|
||||||
columns={[
|
columns={[
|
||||||
{
|
{ title: "About", items: [{ label: "Family Owned", href: "#" }, { label: "Since 1992", href: "#" }] },
|
||||||
title: "About", items: [
|
{ title: "Services", items: [{ label: "Plumbing Repairs", href: "#features" }, { label: "Emergency Plumbing", href: "#contact" }] },
|
||||||
{
|
{ title: "Contact", items: [{ label: "(586) 795-9955", onClick: handleCallNow }, { label: "eaglepaul2@yahoo.com", href: "mailto:eaglepaul2@yahoo.com" }] },
|
||||||
label: "Family Owned", href: "#"},
|
|
||||||
{
|
|
||||||
label: "Since 1992", href: "#"},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Services", items: [
|
|
||||||
{
|
|
||||||
label: "Plumbing Repairs", href: "#features"},
|
|
||||||
{
|
|
||||||
label: "Emergency Plumbing", href: "#contact"},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Contact", items: [
|
|
||||||
{
|
|
||||||
label: "(586) 795-9955", onClick: handleCallNow},
|
|
||||||
{
|
|
||||||
label: "eaglepaul2@yahoo.com", href: "mailto:eaglepaul2@yahoo.com"},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
bottomLeftText="© 2024 Cut Rate Plumbing"
|
bottomLeftText="© 2024 Cut Rate Plumbing"
|
||||||
bottomRightText="2570 Maplecrest Rd, Sterling Heights, MI"
|
bottomRightText="2570 Maplecrest Rd, Sterling Heights, MI"
|
||||||
@@ -270,4 +194,4 @@ export default function LandingPage() {
|
|||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user