From 3fdb2b31354af7cc0c1026bfbbda05a7f149950d Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 20 Feb 2026 20:05:35 +0000 Subject: [PATCH 1/9] Update src/app/about/page.tsx --- src/app/about/page.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index af4bf88..364ec9a 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -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() { Date: Fri, 20 Feb 2026 20:05:36 +0000 Subject: [PATCH 2/9] Update src/app/blog/page.tsx --- src/app/blog/page.tsx | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx index eb372f8..6d02956 100644 --- a/src/app/blog/page.tsx +++ b/src/app/blog/page.tsx @@ -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 ( - + {isLoading ? (
@@ -59,7 +58,6 @@ export default function BlogPage() { Date: Fri, 20 Feb 2026 20:05:36 +0000 Subject: [PATCH 3/9] Update src/app/contact/page.tsx --- src/app/contact/page.tsx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index ea52f29..51970c0 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -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() {
Date: Fri, 20 Feb 2026 20:05:37 +0000 Subject: [PATCH 4/9] Update src/app/layout.tsx --- src/app/layout.tsx | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 3094fc7..21dffd9 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -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"], }, }; -- 2.49.1 From 3ea47db9234686d95425de111ed0a3cd2966a198 Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 20 Feb 2026 20:05:38 +0000 Subject: [PATCH 5/9] Update src/app/page.tsx --- src/app/page.tsx | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 5fca0d3..d42f407 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -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 (
@@ -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" }]} />
@@ -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" /> @@ -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" /> -- 2.49.1 From 487d1beb082e177ed670316be3fbe0d445c42ee0 Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 20 Feb 2026 20:05:39 +0000 Subject: [PATCH 6/9] Update src/app/reviews/page.tsx --- src/app/reviews/page.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app/reviews/page.tsx b/src/app/reviews/page.tsx index bdd90df..3c136c2 100644 --- a/src/app/reviews/page.tsx +++ b/src/app/reviews/page.tsx @@ -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} -- 2.49.1 From f70234145240acc0b5c38693d1457556decaf45f Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 20 Feb 2026 20:05:40 +0000 Subject: [PATCH 7/9] Update src/app/services/page.tsx --- src/app/services/page.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app/services/page.tsx b/src/app/services/page.tsx index 01b3f83..2ede3b0 100644 --- a/src/app/services/page.tsx +++ b/src/app/services/page.tsx @@ -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" }, -- 2.49.1 From 00c018ced42654d44ad1ecb44f53e0691207af27 Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 20 Feb 2026 20:05:41 +0000 Subject: [PATCH 8/9] Update src/app/shop/[id]/page.tsx --- src/app/shop/[id]/page.tsx | 55 +++++++++----------------------------- 1 file changed, 12 insertions(+), 43 deletions(-) diff --git a/src/app/shop/[id]/page.tsx b/src/app/shop/[id]/page.tsx index 33d75a1..b72e486 100644 --- a/src/app/shop/[id]/page.tsx +++ b/src/app/shop/[id]/page.tsx @@ -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 ( 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" />
@@ -117,8 +114,6 @@ function ProductPageContent({ params }: ProductPageProps) { 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" />
@@ -181,8 +165,6 @@ function ProductPageContent({ params }: ProductPageProps) { 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" />
@@ -267,8 +238,6 @@ function ProductPageContent({ params }: ProductPageProps) { Date: Fri, 20 Feb 2026 20:05:41 +0000 Subject: [PATCH 9/9] Update src/app/shop/page.tsx --- src/app/shop/page.tsx | 40 +++++++++++----------------------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/src/app/shop/page.tsx b/src/app/shop/page.tsx index 2cae1f8..206f2a0 100644 --- a/src/app/shop/page.tsx +++ b/src/app/shop/page.tsx @@ -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 ( 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" />
@@ -84,8 +81,6 @@ export default function ShopPage() { 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" />
@@ -160,8 +144,6 @@ export default function ShopPage() {