Merge version_1 into main #2
@@ -9,6 +9,7 @@ import Link from 'next/link';
|
||||
|
||||
export default function AboutPage() {
|
||||
const navItems = [
|
||||
{ name: 'Home', id: '/' },
|
||||
{ name: 'Services', id: '/services' },
|
||||
{ name: 'About', id: '/about' },
|
||||
{ name: 'Reviews', id: '/reviews' },
|
||||
@@ -41,8 +42,7 @@ export default function AboutPage() {
|
||||
<TextSplitAbout
|
||||
title="Our Story: A Family Standard of Work"
|
||||
description={[
|
||||
"Nick and Sons Plumbing is built on a simple promise: show up, do it right, and treat people well. Founded by Nick, a master plumber with over two decades of experience, we bring a family standard of quality and integrity to every home we service.",
|
||||
"Homeowners consistently mention our thoroughness, courtesy, and trustworthiness—because that’s how we work, every time. We believe in building long-term relationships based on reliable work and clear communication."
|
||||
"Nick and Sons Plumbing is built on a simple promise: show up, do it right, and treat people well. Founded by Nick, a master plumber with over two decades of experience, we bring a family standard of quality and integrity to every home we service.", "Homeowners consistently mention our thoroughness, courtesy, and trustworthiness—because that’s how we work, every time. We believe in building long-term relationships based on reliable work and clear communication."
|
||||
]}
|
||||
useInvertedBackground={false}
|
||||
className="py-20 lg:py-28"
|
||||
@@ -56,9 +56,9 @@ export default function AboutPage() {
|
||||
title="Our Core Values"
|
||||
description="These principles guide every job we do, ensuring you receive the highest quality service."
|
||||
features={[
|
||||
{ title: "Pro-Level Skill", description: "We solve problems other plumbers miss—and we do it efficiently.", imageSrc: "https://img.b2bpic.net/free-vector/plumber-services-logo-design-template_742173-26552.jpg?_wi=2", imageAlt: "Icon representing skill" },
|
||||
{ title: "Integrity You Can Feel", description: "Customers call out our honesty, professionalism, and respect in the home.", imageSrc: "https://img.b2bpic.net/free-vector/handshake-circles-set_78370-9465.jpg?_wi=2", imageAlt: "Icon representing integrity" },
|
||||
{ title: "Above-and-Beyond Service", description: "If we see a second issue while fixing the first, we handle it the right way—no shortcuts.", imageSrc: "https://img.b2bpic.net/free-vector/check-mark-stars_78370-4435.jpg?_wi=2", imageAlt: "Icon representing above and beyond service" }
|
||||
{ title: "Pro-Level Skill", description: "We solve problems other plumbers miss—and we do it efficiently.", imageSrc: "https://img.b2bpic.net/free-vector/plumber-services-logo-design-template_742173-26552.jpg", imageAlt: "Icon representing skill" },
|
||||
{ title: "Integrity You Can Feel", description: "Customers call out our honesty, professionalism, and respect in the home.", imageSrc: "https://img.b2bpic.net/free-vector/handshake-circles-set_78370-9465.jpg", imageAlt: "Icon representing integrity" },
|
||||
{ title: "Above-and-Beyond Service", description: "If we see a second issue while fixing the first, we handle it the right way—no shortcuts.", imageSrc: "https://img.b2bpic.net/free-vector/check-mark-stars_78370-4435.jpg", imageAlt: "Icon representing above and beyond service" }
|
||||
]}
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
animationType="slide-up"
|
||||
@@ -76,8 +76,8 @@ export default function AboutPage() {
|
||||
title="Meet the Team"
|
||||
description="Led by Nick, our team is comprised of certified professionals dedicated to quality."
|
||||
features={[
|
||||
{ title: "Nick - Founder & Master Plumber", description: "With over 20 years of experience, Nick leads the team with a commitment to quality and customer satisfaction.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-happy-auto-repairman-looking-camera-while-his-customers-are-standing-background_637285-7790.jpg?_wi=1", imageAlt: "Nick, founder of Nick and Sons Plumbing" },
|
||||
{ title: "The Sons - Certified Technicians", description: "Trained by the best, our next generation of plumbers brings modern techniques and the same family values to every job.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-happy-auto-repairman-looking-camera-while-his-customers-are-standing-background_637285-7790.jpg?_wi=2", imageAlt: "The professional team of plumbers" }
|
||||
{ title: "Nick - Founder & Master Plumber", description: "With over 20 years of experience, Nick leads the team with a commitment to quality and customer satisfaction.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-happy-auto-repairman-looking-camera-while-his-customers-are-standing-background_637285-7790.jpg", imageAlt: "Nick, founder of Nick and Sons Plumbing" },
|
||||
{ title: "The Sons - Certified Technicians", description: "Trained by the best, our next generation of plumbers brings modern techniques and the same family values to every job.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-happy-auto-repairman-looking-camera-while-his-customers-are-standing-background_637285-7790.jpg", imageAlt: "The professional team of plumbers" }
|
||||
]}
|
||||
gridVariant="two-items-per-row"
|
||||
animationType="slide-up"
|
||||
|
||||
@@ -9,6 +9,13 @@ import FooterCard from '@/components/sections/footer/FooterCard';
|
||||
|
||||
export default function BlogPage() {
|
||||
const { posts, isLoading } = useBlogPosts();
|
||||
const navItems = [
|
||||
{ name: 'Home', id: '/' },
|
||||
{ name: 'Services', id: '/services' },
|
||||
{ name: 'About', id: '/about' },
|
||||
{ name: 'Reviews', id: '/reviews' },
|
||||
{ name: 'Contact', id: '/contact' }
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
@@ -24,22 +31,14 @@ export default function BlogPage() {
|
||||
headingFontWeight="bold"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<NavbarStyleCentered
|
||||
brandName="Nick and Sons Plumbing"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Services", id: "/services" },
|
||||
{ name: "About", id: "/about" },
|
||||
{ name: "Reviews", id: "/reviews" },
|
||||
{ name: "Areas", id: "/service-areas" },
|
||||
{ name: "Contact", id: "/contact" }
|
||||
]}
|
||||
button={{ text: "Call Now", href: "tel:123-456-7890" }}
|
||||
className="py-4 lg:py-6"
|
||||
containerClassName="relative z-50"
|
||||
buttonClassName="ml-4 text-white hover:text-white bg-primary-cta hover:bg-primary-cta/90 border-transparent rounded-full px-6 py-2 shadow-lg hover:shadow-xl transition-all duration-300"
|
||||
buttonTextClassName="font-semibold"
|
||||
/>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
brandName="Nick and Sons Plumbing"
|
||||
navItems={navItems}
|
||||
button={{ text: "Call Now", href: "tel:123-456-7890" }}
|
||||
className="py-4 lg:py-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{isLoading ? (
|
||||
<div className="w-content-width mx-auto py-20 text-center">
|
||||
@@ -59,7 +58,6 @@ export default function BlogPage() {
|
||||
<FooterCard
|
||||
logoText="Nick and Sons Plumbing"
|
||||
copyrightText="© 2024 | Nick and Sons Plumbing. All rights reserved."
|
||||
socialLinks={[]}
|
||||
className="py-16"
|
||||
cardClassName="max-w-7xl mx-auto px-6 lg:px-8 bg-card rounded-xl shadow-lg"
|
||||
logoClassName="text-3xl font-bold text-foreground"
|
||||
|
||||
@@ -10,6 +10,7 @@ import Link from 'next/link';
|
||||
|
||||
export default function ContactPage() {
|
||||
const navItems = [
|
||||
{ name: 'Home', id: '/' },
|
||||
{ name: 'Services', id: '/services' },
|
||||
{ name: 'About', id: '/about' },
|
||||
{ name: 'Reviews', id: '/reviews' },
|
||||
@@ -59,9 +60,9 @@ export default function ContactPage() {
|
||||
title="Our Service Area"
|
||||
description="We proudly serve the following communities and surrounding areas."
|
||||
features={[
|
||||
{ title: "Oak Creek", description: "Main service hub and surrounding neighborhoods.", imageSrc: "https://img.b2bpic.net/free-vector/real-estate-searching-concept_23-2148657476.jpg?_wi=1", imageAlt: "Map of Oak Creek" },
|
||||
{ title: "Riverwood", description: "Covering all residential and commercial needs.", imageSrc: "https://img.b2bpic.net/free-vector/real-estate-searching-concept_23-2148657476.jpg?_wi=2", imageAlt: "Map of Riverwood" },
|
||||
{ title: "Maple Valley", description: "Prompt service for all plumbing issues.", imageSrc: "https://img.b2bpic.net/free-vector/real-estate-searching-concept_23-2148657476.jpg?_wi=3", imageAlt: "Map of Maple Valley" }
|
||||
{ title: "Oak Creek", description: "Main service hub and surrounding neighborhoods.", imageSrc: "https://img.b2bpic.net/free-vector/real-estate-searching-concept_23-2148657476.jpg", imageAlt: "Map of Oak Creek" },
|
||||
{ title: "Riverwood", description: "Covering all residential and commercial needs.", imageSrc: "https://img.b2bpic.net/free-vector/real-estate-searching-concept_23-2148657476.jpg", imageAlt: "Map of Riverwood" },
|
||||
{ title: "Maple Valley", description: "Prompt service for all plumbing issues.", imageSrc: "https://img.b2bpic.net/free-vector/real-estate-searching-concept_23-2148657476.jpg", imageAlt: "Map of Maple Valley" }
|
||||
]}
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
animationType="slide-up"
|
||||
@@ -76,12 +77,12 @@ export default function ContactPage() {
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqDouble
|
||||
title="Have a Question?"
|
||||
description="Find quick answers to common questions about our services and process."
|
||||
title="Frequently Asked Questions"
|
||||
description="Answers to common questions about our services and process, designed to reduce anxiety."
|
||||
faqs={[
|
||||
{ id: "1", title: "Do you offer estimates?", content: "Yes—share a few details (and a photo if possible) and we’ll guide you to the right next step. We believe in transparent pricing." },
|
||||
{ id: "2", title: "Do you explain what you’re doing?", content: "Always. We walk you through the issue and your options so you can decide confidently. No work begins without your approval." },
|
||||
{ id: "3", title: "What are your service hours?", content: "Our standard hours are 8 AM to 5 PM, Monday through Friday. We also offer emergency services for urgent issues." }
|
||||
{ id: "1", title: "Do you offer estimates?", content: "Yes—share a few details (and a photo if possible) and we’ll guide you to the right next step." },
|
||||
{ id: "2", title: "Do you explain what you’re doing?", content: "Always. We walk you through the issue and your options so you can decide confidently." },
|
||||
{ id: "3", title: "Will you look for other issues while you’re there?", content: "If we spot something related (like a second leak), we’ll point it out and recommend the right fix." }
|
||||
]}
|
||||
faqsAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
|
||||
@@ -3,38 +3,24 @@ import { Playfair_Display, Inter } from "next/font/google";
|
||||
import "./globals.css";
|
||||
|
||||
const playfairDisplay = Playfair_Display({
|
||||
variable: "--font-playfair-display",
|
||||
subsets: ["latin"],
|
||||
variable: "--font-playfair-display", subsets: ["latin"],
|
||||
weight: ["400", "500", "600", "700", "800", "900"],
|
||||
});
|
||||
|
||||
const inter = Inter({
|
||||
variable: "--font-inter",
|
||||
subsets: ["latin"],
|
||||
variable: "--font-inter", subsets: ["latin"],
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase: new URL("https://nickandsonsplumbing.com"),
|
||||
title: "Nick and Sons Plumbing | Trusted Local Plumber",
|
||||
description: "Pro-level plumbing with integrity-first service. Leak repairs, faucets, drains, disposals, water lines, softeners, and upgrades. Request an estimate today.",
|
||||
openGraph: {
|
||||
title: "Nick and Sons Plumbing | Trusted Local Plumber",
|
||||
description: "Pro-level plumbing with integrity-first service. Leak repairs, faucets, drains, disposals, water lines, softeners, and upgrades. Request an estimate today.",
|
||||
url: "/",
|
||||
siteName: "Nick and Sons Plumbing",
|
||||
images: [
|
||||
title: "Nick and Sons Plumbing | Trusted Local Plumber", description: "Pro-level plumbing with integrity-first service. Leak repairs, faucets, drains, disposals, water lines, softeners, and upgrades. Request an estimate today.", openGraph: {
|
||||
title: "Nick and Sons Plumbing | Trusted Local Plumber", description: "Pro-level plumbing with integrity-first service. Leak repairs, faucets, drains, disposals, water lines, softeners, and upgrades. Request an estimate today.", url: "/", siteName: "Nick and Sons Plumbing", images: [
|
||||
{
|
||||
url: "https://img.b2bpic.net/free-photo/man-kneeling-down-touching-sink-inspecting-pipes_259150-58251.jpg",
|
||||
alt: "Professional plumber working in a luxury kitchen",
|
||||
},
|
||||
url: "https://img.b2bpic.net/free-photo/man-kneeling-down-touching-sink-inspecting-pipes_259150-58251.jpg", alt: "Professional plumber working in a luxury kitchen"},
|
||||
],
|
||||
type: "website",
|
||||
},
|
||||
type: "website"},
|
||||
twitter: {
|
||||
card: "summary_large_image",
|
||||
title: "Nick and Sons Plumbing | Trusted Local Plumber",
|
||||
description: "Pro-level plumbing with integrity-first service. Leak repairs, faucets, drains, disposals, water lines, softeners, and upgrades. Request an estimate today.",
|
||||
images: ["https://img.b2bpic.net/free-photo/man-kneeling-down-touching-sink-inspecting-pipes_259150-58251.jpg"],
|
||||
card: "summary_large_image", title: "Nick and Sons Plumbing | Trusted Local Plumber", description: "Pro-level plumbing with integrity-first service. Leak repairs, faucets, drains, disposals, water lines, softeners, and upgrades. Request an estimate today.", images: ["https://img.b2bpic.net/free-photo/man-kneeling-down-touching-sink-inspecting-pipes_259150-58251.jpg"],
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -12,17 +12,13 @@ import Link from 'next/link';
|
||||
|
||||
export default function HomePage() {
|
||||
const navItems = [
|
||||
{ name: 'Home', id: '/' },
|
||||
{ name: 'Services', id: '/services' },
|
||||
{ name: 'About', id: '/about' },
|
||||
{ name: 'Reviews', id: '/reviews' },
|
||||
{ name: 'Contact', id: '/contact' }
|
||||
];
|
||||
|
||||
const footerNavItems = navItems.map(item => ({
|
||||
name: item.name,
|
||||
href: item.id
|
||||
}));
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="bounce-effect"
|
||||
@@ -62,6 +58,8 @@ export default function HomePage() {
|
||||
logoClassName="font-extrabold text-5xl md:text-7xl lg:text-8xl xl:text-9xl"
|
||||
descriptionClassName="text-lg md:text-xl lg:text-2xl mt-4 max-w-2xl mx-auto"
|
||||
buttonContainerClassName="flex flex-wrap justify-center gap-4 mt-8"
|
||||
buttonClassName="min-w-[180px]"
|
||||
buttonTextClassName="font-semibold"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -70,9 +68,9 @@ export default function HomePage() {
|
||||
title="Why Homeowners Choose Us"
|
||||
description="We're built on principles of fast response, pro-level skill, integrity, clear communication, fair pricing, and 'above-and-beyond' service."
|
||||
features={[
|
||||
{ title: "Pro-Level Skill", description: "We solve problems other plumbers miss—and we do it efficiently.", imageSrc: "https://img.b2bpic.net/free-vector/plumber-services-logo-design-template_742173-26552.jpg?_wi=1", imageAlt: "Icon representing skill" },
|
||||
{ title: "Integrity You Can Feel", description: "Customers call out our honesty, professionalism, and respect in the home.", imageSrc: "https://img.b2bpic.net/free-vector/handshake-circles-set_78370-9465.jpg?_wi=1", imageAlt: "Icon representing integrity" },
|
||||
{ title: "Above-and-Beyond Service", description: "If we see a second issue while fixing the first, we handle it the right way—no shortcuts.", imageSrc: "https://img.b2bpic.net/free-vector/check-mark-stars_78370-4435.jpg?_wi=1", imageAlt: "Icon representing above and beyond service" }
|
||||
{ title: "Pro-Level Skill", description: "We solve problems other plumbers miss—and we do it efficiently.", imageSrc: "https://img.b2bpic.net/free-vector/plumber-services-logo-design-template_742173-26552.jpg", imageAlt: "Icon representing skill" },
|
||||
{ title: "Integrity You Can Feel", description: "Customers call out our honesty, professionalism, and respect in the home.", imageSrc: "https://img.b2bpic.net/free-vector/handshake-circles-set_78370-9465.jpg", imageAlt: "Icon representing integrity" },
|
||||
{ title: "Above-and-Beyond Service", description: "If we see a second issue while fixing the first, we handle it the right way—no shortcuts.", imageSrc: "https://img.b2bpic.net/free-vector/check-mark-stars_78370-4435.jpg", imageAlt: "Icon representing above and beyond service" }
|
||||
]}
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
animationType="slide-up"
|
||||
@@ -90,15 +88,18 @@ export default function HomePage() {
|
||||
title="Plumbing Services Built for Real Life"
|
||||
description="From quick repairs to home upgrades, we keep your systems reliable and your home protected."
|
||||
features={[
|
||||
{ title: "Leak Detection & Repairs", description: "Under-sink, pipe leaks, hidden drips.", imageSrc: "https://img.b2bpic.net/free-photo/male-worker-operating-machinery-factory_107420-96043.jpg?_wi=1", imageAlt: "Illustration of a leaking pipe" },
|
||||
{ title: "Kitchen Plumbing", description: "Faucets, sinks, garbage disposals, drain issues.", imageSrc: "https://img.b2bpic.net/free-photo/household-repair-middle-aged-man-inspecting-pipe-touching-hand-sink-stylish-modern-kitchen_259150-58265.jpg?_wi=1", imageAlt: "Illustration of a kitchen sink and faucet" },
|
||||
{ title: "Bathroom Plumbing", description: "Showers, valves, toilets, remodel support.", imageSrc: "https://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990698.jpg?_wi=1", imageAlt: "Illustration of a showerhead and toilet" },
|
||||
{ title: "Leak Detection & Repairs", description: "Under-sink, pipe leaks, hidden drips.", imageSrc: "https://img.b2bpic.net/free-photo/male-worker-operating-machinery-factory_107420-96043.jpg", imageAlt: "Illustration of a leaking pipe" },
|
||||
{ title: "Kitchen Plumbing", description: "Faucets, sinks, garbage disposals, drain issues.", imageSrc: "https://img.b2bpic.net/free-photo/household-repair-middle-aged-man-inspecting-pipe-touching-hand-sink-stylish-modern-kitchen_259150-58265.jpg", imageAlt: "Illustration of a kitchen sink and faucet" },
|
||||
{ title: "Bathroom Plumbing", description: "Showers, valves, toilets, remodel support.", imageSrc: "https://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990698.jpg", imageAlt: "Illustration of a showerhead and toilet" },
|
||||
{ title: "Water Line & Appliance Hookups", description: "Fridge water dispensers, washing machines.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-handsome-male-technician-doing-work-report-broken-fridge-home-kitchen_662251-2719.jpg", imageAlt: "Illustration of a water line connection" },
|
||||
{ title: "Drain Clearing", description: "Kitchen drains and clogs handled fast.", imageSrc: "https://img.b2bpic.net/free-photo/top-view-plumber-checking-kitchen-fixtures_1098-17864.jpg", imageAlt: "Illustration of a clogged drain" },
|
||||
{ title: "Water Quality Upgrades", description: "Water softeners and related installs.", imageSrc: "https://img.b2bpic.net/free-photo/water-filter-with-blue-cap-blue-background_185193-165389.jpg", imageAlt: "Illustration of a water filtration system" },
|
||||
{ title: "Recirculating Pumps", description: "Comfort upgrades for faster hot water.", imageSrc: "https://img.b2bpic.net/free-photo/view-plumber-working-fix-problems_23-2150990693.jpg", imageAlt: "Illustration of a water heater with pump" },
|
||||
]}
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
buttons={[{ text: "See All Services →", href: "/services" }]}
|
||||
cardClassName="p-6 md:p-8"
|
||||
cardTitleClassName="text-lg font-semibold mt-4 mb-2"
|
||||
cardDescriptionClassName="text-sm text-foreground/70"
|
||||
@@ -111,8 +112,11 @@ export default function HomePage() {
|
||||
title="Homeowners Don’t Just “Recommend”—They Keep Calling Us Back."
|
||||
description="We're proud that customers mention the same things again and again: professionalism, thorough work, strong communication, and integrity."
|
||||
testimonials={[
|
||||
{ id: "1", title: "“Communicative, professional, quality work, priced fairly.”", quote: "The team was incredibly communicative and professional throughout the entire process. The quality of work was exceptional, and it was all priced fairly. Highly recommend!", name: "Sarah Johnson", role: "Homeowner", imageSrc: "https://img.b2bpic.net/free-photo/smiling-businessman-standing-airport_107420-85035.jpg?_wi=1", imageAlt: "Sarah Johnson" },
|
||||
{ id: "2", title: "“Shows up, gets the job done… Integrity is 100%.”", quote: "Nick and Sons Plumbing truly delivers. They show up on time, get the job done right, and their integrity is 100%. A plumber you can trust.", name: "Michael Chen", role: "Satisfied Client", imageSrc: "https://img.b2bpic.net/free-photo/smiling-man-sitting-cafe-table-gesturing_1262-1141.jpg?_wi=1", imageAlt: "Michael Chen" }
|
||||
{ id: "1", title: "“Communicative, professional, quality work, priced fairly.”", quote: "The team was incredibly communicative and professional throughout the entire process. The quality of work was exceptional, and it was all priced fairly. Highly recommend!", name: "Sarah Johnson", role: "Homeowner", imageSrc: "https://img.b2bpic.net/free-photo/smiling-businessman-standing-airport_107420-85035.jpg", imageAlt: "Sarah Johnson" },
|
||||
{ id: "2", title: "“Shows up, gets the job done… Integrity is 100%.”", quote: "Nick and Sons Plumbing truly delivers. They show up on time, get the job done right, and their integrity is 100%. A plumber you can trust.", name: "Michael Chen", role: "Satisfied Client", imageSrc: "https://img.b2bpic.net/free-photo/smiling-man-sitting-cafe-table-gesturing_1262-1141.jpg", imageAlt: "Michael Chen" },
|
||||
{ id: "3", title: "“Fixed it in less than 10 minutes and explained the process.”", quote: "I had a persistent leak that was driving me crazy. Nick and Sons came, fixed it in less than 10 minutes, and clearly explained what caused it. Fantastic service!", name: "Emily Rodriguez", role: "Local Resident", imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg", imageAlt: "Emily Rodriguez" },
|
||||
{ id: "4", title: "“Found a second leak while fixing the first.”", quote: "They truly go above and beyond. While fixing an obvious leak, they proactively found a second, smaller one I hadn't even noticed and fixed that too. Saved me future headaches.", name: "David Kim", role: "Property Owner", imageSrc: "https://img.b2bpic.net/free-photo/smiling-african-american-man-posing-library_74855-1619.jpg", imageAlt: "David Kim" },
|
||||
{ id: "5", title: "“Solved plumbing problems multiple other plumbers could not.”", quote: "I had tried several other plumbers for a complex issue, and Nick and Sons was the only one who could actually solve it. Their expertise is unmatched.", name: "Jessica Lee", role: "Grateful Customer", imageSrc: "https://img.b2bpic.net/free-photo/smiling-businessman-standing-airport_107420-85035.jpg", imageAlt: "Jessica Lee" }
|
||||
]}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
@@ -120,7 +124,6 @@ export default function HomePage() {
|
||||
quoteClassName="mt-4 text-lg text-foreground/80"
|
||||
nameClassName="font-bold"
|
||||
roleClassName="text-sm text-foreground/70"
|
||||
buttons={[{ text: "Read All Reviews", href: "/reviews" }]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -155,6 +158,8 @@ export default function HomePage() {
|
||||
className="py-20 lg:py-28"
|
||||
titleClassName="text-4xl md:text-5xl lg:text-6xl font-extrabold"
|
||||
descriptionClassName="text-lg md:text-xl text-foreground/80 max-w-xl"
|
||||
buttonClassName="mt-8"
|
||||
buttonTextClassName="font-semibold"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -169,11 +174,13 @@ export default function HomePage() {
|
||||
]}
|
||||
buttonAnimation="bounce-effect"
|
||||
background={{ variant: "radial-gradient" }}
|
||||
useInvertedBackground={true}
|
||||
useInvertedBackground={false}
|
||||
className="py-20 lg:py-28 text-white"
|
||||
titleClassName="text-4xl md:text-5xl lg:text-6xl font-extrabold text-white"
|
||||
descriptionClassName="text-lg md:text-xl lg:text-2xl mt-4 text-white/90 max-w-2xl mx-auto"
|
||||
buttonContainerClassName="flex flex-wrap justify-center gap-4 mt-8"
|
||||
buttonClassName="min-w-[180px]"
|
||||
buttonTextClassName="font-semibold"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import Link from 'next/link';
|
||||
|
||||
export default function ReviewsPage() {
|
||||
const navItems = [
|
||||
{ name: 'Home', id: '/' },
|
||||
{ name: 'Services', id: '/services' },
|
||||
{ name: 'About', id: '/about' },
|
||||
{ name: 'Reviews', id: '/reviews' },
|
||||
@@ -43,11 +44,11 @@ export default function ReviewsPage() {
|
||||
title="Homeowners Don’t Just “Recommend”—They Keep Calling Us Back."
|
||||
description="We're proud that customers mention the same things again and again: professionalism, thorough work, strong communication, and integrity."
|
||||
testimonials={[
|
||||
{ id: "1", title: "“Communicative, professional, quality work, priced fairly.”", quote: "The team was incredibly communicative and professional throughout the entire process. The quality of work was exceptional, and it was all priced fairly. Highly recommend!", name: "Sarah Johnson", role: "Homeowner", imageSrc: "https://img.b2bpic.net/free-photo/smiling-businessman-standing-airport_107420-85035.jpg?_wi=2", imageAlt: "Sarah Johnson" },
|
||||
{ id: "2", title: "“Shows up, gets the job done… Integrity is 100%.”", quote: "Nick and Sons Plumbing truly delivers. They show up on time, get the job done right, and their integrity is 100%. A plumber you can trust.", name: "Michael Chen", role: "Satisfied Client", imageSrc: "https://img.b2bpic.net/free-photo/smiling-man-sitting-cafe-table-gesturing_1262-1141.jpg?_wi=2", imageAlt: "Michael Chen" },
|
||||
{ id: "1", title: "“Communicative, professional, quality work, priced fairly.”", quote: "The team was incredibly communicative and professional throughout the entire process. The quality of work was exceptional, and it was all priced fairly. Highly recommend!", name: "Sarah Johnson", role: "Homeowner", imageSrc: "https://img.b2bpic.net/free-photo/smiling-businessman-standing-airport_107420-85035.jpg", imageAlt: "Sarah Johnson" },
|
||||
{ id: "2", title: "“Shows up, gets the job done… Integrity is 100%.”", quote: "Nick and Sons Plumbing truly delivers. They show up on time, get the job done right, and their integrity is 100%. A plumber you can trust.", name: "Michael Chen", role: "Satisfied Client", imageSrc: "https://img.b2bpic.net/free-photo/smiling-man-sitting-cafe-table-gesturing_1262-1141.jpg", imageAlt: "Michael Chen" },
|
||||
{ id: "3", title: "“Fixed it in less than 10 minutes and explained the process.”", quote: "I had a persistent leak that was driving me crazy. Nick and Sons came, fixed it in less than 10 minutes, and clearly explained what caused it. Fantastic service!", name: "Emily Rodriguez", role: "Local Resident", imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg", imageAlt: "Emily Rodriguez" },
|
||||
{ id: "4", title: "“Found a second leak while fixing the first.”", quote: "They truly go above and beyond. While fixing an obvious leak, they proactively found a second, smaller one I hadn't even noticed and fixed that too. Saved me future headaches.", name: "David Kim", role: "Property Owner", imageSrc: "https://img.b2bpic.net/free-photo/smiling-african-american-man-posing-library_74855-1619.jpg", imageAlt: "David Kim" },
|
||||
{ id: "5", title: "“Solved plumbing problems multiple other plumbers could not.”", quote: "I had tried several other plumbers for a complex issue, and Nick and Sons was the only one who could actually solve it. Their expertise is unmatched.", name: "Jessica Lee", role: "Grateful Customer", imageSrc: "https://img.b2bpic.net/free-photo/smiling-businessman-standing-airport_107420-85035.jpg?_wi=3", imageAlt: "Jessica Lee" }
|
||||
{ id: "5", title: "“Solved plumbing problems multiple other plumbers could not.”", quote: "I had tried several other plumbers for a complex issue, and Nick and Sons was the only one who could actually solve it. Their expertise is unmatched.", name: "Jessica Lee", role: "Grateful Customer", imageSrc: "https://img.b2bpic.net/free-photo/smiling-businessman-standing-airport_107420-85035.jpg", imageAlt: "Jessica Lee" }
|
||||
]}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
|
||||
@@ -10,6 +10,7 @@ import Link from 'next/link';
|
||||
|
||||
export default function ServicesPage() {
|
||||
const navItems = [
|
||||
{ name: 'Home', id: '/' },
|
||||
{ name: 'Services', id: '/services' },
|
||||
{ name: 'About', id: '/about' },
|
||||
{ name: 'Reviews', id: '/reviews' },
|
||||
@@ -54,9 +55,9 @@ export default function ServicesPage() {
|
||||
title="Our Full Service List"
|
||||
description="Explore our full range of services designed to keep your home running smoothly."
|
||||
features={[
|
||||
{ title: "Leak Detection & Repairs", description: "Under-sink, pipe leaks, hidden drips. We find and fix them fast.", imageSrc: "https://img.b2bpic.net/free-photo/male-worker-operating-machinery-factory_107420-96043.jpg?_wi=2", imageAlt: "Illustration of a leaking pipe" },
|
||||
{ title: "Kitchen Plumbing", description: "Faucets, sinks, garbage disposals, and drain issues handled by experts.", imageSrc: "https://img.b2bpic.net/free-photo/household-repair-middle-aged-man-inspecting-pipe-touching-hand-sink-stylish-modern-kitchen_259150-58265.jpg?_wi=2", imageAlt: "Illustration of a kitchen sink and faucet" },
|
||||
{ title: "Bathroom Plumbing", description: "Showers, valves, toilets, and full support for bathroom remodels.", imageSrc: "https://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990698.jpg?_wi=2", imageAlt: "Illustration of a showerhead and toilet" },
|
||||
{ title: "Leak Detection & Repairs", description: "Under-sink, pipe leaks, hidden drips. We find and fix them fast.", imageSrc: "https://img.b2bpic.net/free-photo/male-worker-operating-machinery-factory_107420-96043.jpg", imageAlt: "Illustration of a leaking pipe" },
|
||||
{ title: "Kitchen Plumbing", description: "Faucets, sinks, garbage disposals, and drain issues handled by experts.", imageSrc: "https://img.b2bpic.net/free-photo/household-repair-middle-aged-man-inspecting-pipe-touching-hand-sink-stylish-modern-kitchen_259150-58265.jpg", imageAlt: "Illustration of a kitchen sink and faucet" },
|
||||
{ title: "Bathroom Plumbing", description: "Showers, valves, toilets, and full support for bathroom remodels.", imageSrc: "https://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990698.jpg", imageAlt: "Illustration of a showerhead and toilet" },
|
||||
{ title: "Water Line & Appliance Hookups", description: "Fridge water dispensers, washing machines, and new water lines.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-handsome-male-technician-doing-work-report-broken-fridge-home-kitchen_662251-2719.jpg", imageAlt: "Illustration of a water line connection" },
|
||||
{ title: "Drain Clearing", description: "Stubborn kitchen drains and clogs are no match for our professional tools.", imageSrc: "https://img.b2bpic.net/free-photo/top-view-plumber-checking-kitchen-fixtures_1098-17864.jpg", imageAlt: "Illustration of a clogged drain" },
|
||||
{ title: "Water Quality Upgrades", description: "Improve your water with water softeners and filtration system installations.", imageSrc: "https://img.b2bpic.net/free-photo/water-filter-with-blue-cap-blue-background_185193-165389.jpg", imageAlt: "Illustration of a water filtration system" },
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use client";
|
||||
"use client";
|
||||
|
||||
import { Suspense, use, useCallback } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
@@ -74,6 +74,14 @@ function ProductPageContent({ params }: ProductPageProps) {
|
||||
await checkout(getCheckoutItems(), { successUrl: currentUrl.toString() });
|
||||
}, [cartItems, checkout, getCheckoutItems]);
|
||||
|
||||
const navItems = [
|
||||
{ name: 'Home', id: '/' },
|
||||
{ name: 'Services', id: '/services' },
|
||||
{ name: 'About', id: '/about' },
|
||||
{ name: 'Reviews', id: '/reviews' },
|
||||
{ name: 'Contact', id: '/contact' }
|
||||
];
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
<ThemeProvider
|
||||
@@ -92,20 +100,9 @@ function ProductPageContent({ params }: ProductPageProps) {
|
||||
<div id="navbar" data-section="navbar">
|
||||
<NavbarStyleCentered
|
||||
brandName="Nick and Sons Plumbing"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Services", id: "/services" },
|
||||
{ name: "About", id: "/about" },
|
||||
{ name: "Reviews", id: "/reviews" },
|
||||
{ name: "Areas", id: "/service-areas" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
{ name: "Shop", id: "/shop" }
|
||||
]}
|
||||
navItems={navItems}
|
||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||
className="py-4 lg:py-6"
|
||||
containerClassName="relative z-50"
|
||||
buttonClassName="ml-4 text-white hover:text-white bg-primary-cta hover:bg-primary-cta/90 border-transparent rounded-full px-6 py-2 shadow-lg hover:shadow-xl transition-all duration-300"
|
||||
buttonTextClassName="font-semibold"
|
||||
/>
|
||||
</div>
|
||||
<div id="page-status" data-section="page-status">
|
||||
@@ -117,8 +114,6 @@ function ProductPageContent({ params }: ProductPageProps) {
|
||||
<FooterCard
|
||||
logoText="Nick and Sons Plumbing"
|
||||
copyrightText="© 2024 | Nick and Sons Plumbing. All rights reserved."
|
||||
useInvertedBackground={false}
|
||||
socialLinks={[]}
|
||||
className="py-16"
|
||||
cardClassName="max-w-7xl mx-auto px-6 lg:px-8 bg-card rounded-xl shadow-lg"
|
||||
logoClassName="text-3xl font-bold text-foreground"
|
||||
@@ -148,20 +143,9 @@ function ProductPageContent({ params }: ProductPageProps) {
|
||||
<div id="navbar" data-section="navbar">
|
||||
<NavbarStyleCentered
|
||||
brandName="Nick and Sons Plumbing"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Services", id: "/services" },
|
||||
{ name: "About", id: "/about" },
|
||||
{ name: "Reviews", id: "/reviews" },
|
||||
{ name: "Areas", id: "/service-areas" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
{ name: "Shop", id: "/shop" }
|
||||
]}
|
||||
navItems={navItems}
|
||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||
className="py-4 lg:py-6"
|
||||
containerClassName="relative z-50"
|
||||
buttonClassName="ml-4 text-white hover:text-white bg-primary-cta hover:bg-primary-cta/90 border-transparent rounded-full px-6 py-2 shadow-lg hover:shadow-xl transition-all duration-300"
|
||||
buttonTextClassName="font-semibold"
|
||||
/>
|
||||
</div>
|
||||
<div id="page-status" data-section="page-status">
|
||||
@@ -181,8 +165,6 @@ function ProductPageContent({ params }: ProductPageProps) {
|
||||
<FooterCard
|
||||
logoText="Nick and Sons Plumbing"
|
||||
copyrightText="© 2024 | Nick and Sons Plumbing. All rights reserved."
|
||||
useInvertedBackground={false}
|
||||
socialLinks={[]}
|
||||
className="py-16"
|
||||
cardClassName="max-w-7xl mx-auto px-6 lg:px-8 bg-card rounded-xl shadow-lg"
|
||||
logoClassName="text-3xl font-bold text-foreground"
|
||||
@@ -211,20 +193,9 @@ function ProductPageContent({ params }: ProductPageProps) {
|
||||
<div id="navbar" data-section="navbar">
|
||||
<NavbarStyleCentered
|
||||
brandName="Nick and Sons Plumbing"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Services", id: "/services" },
|
||||
{ name: "About", id: "/about" },
|
||||
{ name: "Reviews", id: "/reviews" },
|
||||
{ name: "Areas", id: "/service-areas" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
{ name: "Shop", id: "/shop" }
|
||||
]}
|
||||
navItems={navItems}
|
||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||
className="py-4 lg:py-6"
|
||||
containerClassName="relative z-50"
|
||||
buttonClassName="ml-4 text-white hover:text-white bg-primary-cta hover:bg-primary-cta/90 border-transparent rounded-full px-6 py-2 shadow-lg hover:shadow-xl transition-all duration-300"
|
||||
buttonTextClassName="font-semibold"
|
||||
/>
|
||||
</div>
|
||||
<div id="product-detail-card" data-section="product-detail-card">
|
||||
@@ -267,8 +238,6 @@ function ProductPageContent({ params }: ProductPageProps) {
|
||||
<FooterCard
|
||||
logoText="Nick and Sons Plumbing"
|
||||
copyrightText="© 2024 | Nick and Sons Plumbing. All rights reserved."
|
||||
useInvertedBackground={false}
|
||||
socialLinks={[]}
|
||||
className="py-16"
|
||||
cardClassName="max-w-7xl mx-auto px-6 lg:px-8 bg-card rounded-xl shadow-lg"
|
||||
logoClassName="text-3xl font-bold text-foreground"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use client";
|
||||
"use client";
|
||||
|
||||
import ReactLenis from "lenis/react";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
@@ -41,6 +41,14 @@ export default function ShopPage() {
|
||||
await checkout(getCheckoutItems(), { successUrl: currentUrl.toString() });
|
||||
}, [cartItems, checkout, getCheckoutItems]);
|
||||
|
||||
const navItems = [
|
||||
{ name: 'Home', id: '/' },
|
||||
{ name: 'Services', id: '/services' },
|
||||
{ name: 'About', id: '/about' },
|
||||
{ name: 'Reviews', id: '/reviews' },
|
||||
{ name: 'Contact', id: '/contact' }
|
||||
];
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
<ThemeProvider
|
||||
@@ -59,20 +67,9 @@ export default function ShopPage() {
|
||||
<div id="navbar" data-section="navbar">
|
||||
<NavbarStyleCentered
|
||||
brandName="Nick and Sons Plumbing"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Services", id: "/services" },
|
||||
{ name: "About", id: "/about" },
|
||||
{ name: "Reviews", id: "/reviews" },
|
||||
{ name: "Areas", id: "/service-areas" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
{ name: "Shop", id: "/shop" }
|
||||
]}
|
||||
navItems={navItems}
|
||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||
className="py-4 lg:py-6"
|
||||
containerClassName="relative z-50"
|
||||
buttonClassName="ml-4 text-white hover:text-white bg-primary-cta hover:bg-primary-cta/90 border-transparent rounded-full px-6 py-2 shadow-lg hover:shadow-xl transition-all duration-300"
|
||||
buttonTextClassName="font-semibold"
|
||||
/>
|
||||
</div>
|
||||
<div id="loading-state" data-section="loading-state">
|
||||
@@ -84,8 +81,6 @@ export default function ShopPage() {
|
||||
<FooterCard
|
||||
logoText="Nick and Sons Plumbing"
|
||||
copyrightText="© 2024 | Nick and Sons Plumbing. All rights reserved."
|
||||
useInvertedBackground={false}
|
||||
socialLinks={[]}
|
||||
className="py-16"
|
||||
cardClassName="max-w-7xl mx-auto px-6 lg:px-8 bg-card rounded-xl shadow-lg"
|
||||
logoClassName="text-3xl font-bold text-foreground"
|
||||
@@ -114,20 +109,9 @@ export default function ShopPage() {
|
||||
<div id="navbar" data-section="navbar">
|
||||
<NavbarStyleCentered
|
||||
brandName="Nick and Sons Plumbing"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Services", id: "/services" },
|
||||
{ name: "About", id: "/about" },
|
||||
{ name: "Reviews", id: "/reviews" },
|
||||
{ name: "Areas", id: "/service-areas" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
{ name: "Shop", id: "/shop" }
|
||||
]}
|
||||
navItems={navItems}
|
||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||
className="py-4 lg:py-6"
|
||||
containerClassName="relative z-50"
|
||||
buttonClassName="ml-4 text-white hover:text-white bg-primary-cta hover:bg-primary-cta/90 border-transparent rounded-full px-6 py-2 shadow-lg hover:shadow-xl transition-all duration-300"
|
||||
buttonTextClassName="font-semibold"
|
||||
/>
|
||||
</div>
|
||||
<div id="product-catalog" data-section="product-catalog">
|
||||
@@ -160,8 +144,6 @@ export default function ShopPage() {
|
||||
<FooterCard
|
||||
logoText="Nick and Sons Plumbing"
|
||||
copyrightText="© 2024 | Nick and Sons Plumbing. All rights reserved."
|
||||
useInvertedBackground={false}
|
||||
socialLinks={[]}
|
||||
className="py-16"
|
||||
cardClassName="max-w-7xl mx-auto px-6 lg:px-8 bg-card rounded-xl shadow-lg"
|
||||
logoClassName="text-3xl font-bold text-foreground"
|
||||
|
||||
Reference in New Issue
Block a user