Merge version_1 into main #1

Merged
bender merged 4 commits from version_1 into main 2026-02-22 00:21:26 +00:00
4 changed files with 38 additions and 26 deletions

View File

@@ -29,11 +29,10 @@ export default function BlogPage() {
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "#services" },
{ name: "Why Us", id: "#why-us" },
{ name: "Promise", id: "#promise" },
{ name: "FAQ", id: "#faq" },
{ name: "Contact", id: "#contact" },
{ name: "Services", id: "/#services" },
{ name: "Why Us", id: "/#why-us" },
{ name: "Shop", id: "/shop" },
{ name: "Contact", id: "/#contact" },
]}
brandName="Johns Plumbing"
/>
@@ -63,8 +62,8 @@ export default function BlogPage() {
<FooterLogoEmphasis
logoText="Johns Plumbing"
columns={[
{ items: [{ label: "Services", href: "#services" }, { label: "Why Johns", href: "#why-us" }, { label: "Our Promise", href: "#promise" }] },
{ items: [{ label: "FAQ", href: "#faq" }, { label: "Book Service", href: "#contact" }, { label: "Call Now", href: "tel:(Your Phone Number)" }] },
{ items: [{ label: "Services", href: "/#services" }, { label: "Why Johns", href: "/#why-us" }, { label: "Our Promise", href: "/#promise" }] },
{ items: [{ label: "FAQ", href: "/#faq" }, { label: "Book Service", href: "/#contact" }, { label: "Call Now", href: "tel:(Your Phone Number)" }] },
{ items: [{ label: "Email Us", href: "mailto:(Your Email)" }, { label: "Licensed & Insured", href: "#" }] },
]}
ariaLabel="Site Footer - Johns Plumbing"

View File

@@ -24,14 +24,14 @@ export default function LandingPage() {
secondaryButtonStyle="radial-glow"
headingFontWeight="normal"
>
<main className="flex flex-col items-center justify-center w-full">
<div id="nav" data-section="nav" className="w-full">
<NavbarStyleFullscreen
navItems={[
{ name: "Services", id: "#services" },
{ name: "Why Us", id: "#why-us" },
{ name: "Promise", id: "#promise" },
{ name: "FAQ", id: "#faq" },
{ name: "Blog", id: "/blog" },
{ name: "Shop", id: "/shop" },
{ name: "Contact", id: "#contact" },
]}
brandName="Johns Plumbing"
@@ -70,7 +70,8 @@ export default function LandingPage() {
testimonials={[
{
id: "1", name: "Eisa and Almond (Customer)", role: "Happy Homeowner", company: "Satisfied Customer", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/builder-man-wearing-construction-uniform-standing-with-arms-crossed-with-confident-smile-isolated-orange-wall_141793-14478.jpg", imageAlt: "Eisa and Almond, happy customers"},
imageSrc: "https://img.b2bpic.net/free-photo/builder-man-wearing-construction-uniform-standing-with-arms-crossed-with-confident-smile-isolated-orange-wall_141793-14478.jpg", imageAlt: "Eisa and Almond, happy customers"
},
]}
kpiItems={[
{ value: "5", label: "Star Rating" },
@@ -90,11 +91,14 @@ export default function LandingPage() {
description="Precision. Professionalism. Speed."
features={[
{
id: "01", title: "Repairs", description: "Fast diagnosis and expert repairs for leaks, clogs, broken pipes, and fixtures. We fix it right the first time.", imageSrc: "https://img.b2bpic.net/free-photo/female-plumber-working-fix-problems-client-s-house_23-2150990725.jpg", imageAlt: "Plumbing repair tools"},
id: "01", title: "Repairs", description: "Fast diagnosis and expert repairs for leaks, clogs, broken pipes, and fixtures. We fix it right the first time.", imageSrc: "https://img.b2bpic.net/free-photo/female-plumber-working-fix-problems-client-s-house_23-2150990725.jpg", imageAlt: "Plumbing repair tools"
},
{
id: "02", title: "Installations", description: "High-end fixture installs done cleanly and professionally. Faucets, water heaters, toilets, and more.", imageSrc: "https://img.b2bpic.net/free-photo/man-white-terry-bathrobe-filling-bathtub-with-water_259150-59739.jpg", imageAlt: "New faucet installation"},
id: "02", title: "Installations", description: "High-end fixture installs done cleanly and professionally. Faucets, water heaters, toilets, and more.", imageSrc: "https://img.b2bpic.net/free-photo/man-white-terry-bathrobe-filling-bathtub-with-water_259150-59739.jpg", imageAlt: "New faucet installation"
},
{
id: "03", title: "Emergency Service", description: "When something goes wrong, we move fast. Quick response. Immediate solutions.", imageSrc: "https://img.b2bpic.net/free-photo/male-worker-operating-machinery-factory_107420-96043.jpg", imageAlt: "Emergency plumbing service"},
id: "03", title: "Emergency Service", description: "When something goes wrong, we move fast. Quick response. Immediate solutions.", imageSrc: "https://img.b2bpic.net/free-photo/male-worker-operating-machinery-factory_107420-96043.jpg", imageAlt: "Emergency plumbing service"
},
]}
animationType="slide-up"
textboxLayout="default"
@@ -210,7 +214,6 @@ export default function LandingPage() {
className="mt-auto"
/>
</div>
</main>
</ThemeProvider>
);
}

View File

@@ -1,4 +1,4 @@
use client";
"use client";
import { Suspense, use, useCallback } from "react";
import { useRouter } from "next/navigation";
@@ -88,12 +88,17 @@ function ProductPageContent({ params }: ProductPageProps) {
headingFontWeight="normal"
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<div id="navbar" data-section="navbar" className="relative w-full">
<NavbarStyleFullscreen
navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }]}
navItems={[{ name: "Home", id: "/" }, { name: "Blog", id: "/blog" }, { name: "Shop", id: "/shop" }]}
brandName="Johns Plumbing"
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
<button
onClick={() => setCartOpen(true)}
className="absolute top-0 right-0 m-4 z-[60] px-4 py-2 bg-primary-cta text-primary-cta-text rounded-md hover:opacity-90 transition-opacity"
>
Cart
</button>
</div>
{isLoading ? (
@@ -161,8 +166,8 @@ function ProductPageContent({ params }: ProductPageProps) {
<FooterLogoEmphasis
logoText="Johns Plumbing"
columns={[
{ items: [{ label: "Services", href: "#services" }, { label: "Why Johns", href: "#why-us" }, { label: "Our Promise", href: "#promise" }] },
{ items: [{ label: "FAQ", href: "#faq" }, { label: "Book Service", href: "#contact" }, { label: "Call Now", href: "tel:(Your Phone Number)" }] },
{ items: [{ label: "Services", href: "/#services" }, { label: "Why Johns", href: "/#why-us" }, { label: "Our Promise", href: "/#promise" }] },
{ items: [{ label: "FAQ", href: "/#faq" }, { label: "Book Service", href: "/#contact" }, { label: "Call Now", href: "tel:(Your Phone Number)" }] },
{ items: [{ label: "Email Us", href: "mailto:(Your Email)" }, { label: "Licensed & Insured", href: "#" }] }
]}
ariaLabel="Site Footer - Johns Plumbing"

View File

@@ -1,4 +1,4 @@
use client";
"use client";
import { Suspense, useCallback } from "react";
import ReactLenis from "lenis/react";
@@ -55,12 +55,17 @@ function ShopPageContent() {
headingFontWeight="normal"
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<div id="navbar" data-section="navbar" className="relative w-full">
<NavbarStyleFullscreen
navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }]}
navItems={[{ name: "Home", id: "/" }, { name: "Blog", id: "/blog" }, { name: "Shop", id: "/shop" }]}
brandName="Johns Plumbing"
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
<button
onClick={() => setCartOpen(true)}
className="absolute top-0 right-0 m-4 z-[60] px-4 py-2 bg-primary-cta text-primary-cta-text rounded-md hover:opacity-90 transition-opacity"
>
Cart
</button>
</div>
{isLoading ? (
@@ -103,8 +108,8 @@ function ShopPageContent() {
<FooterLogoEmphasis
logoText="Johns Plumbing"
columns={[
{ items: [{ label: "Services", href: "#services" }, { label: "Why Johns", href: "#why-us" }, { label: "Our Promise", href: "#promise" }] },
{ items: [{ label: "FAQ", href: "#faq" }, { label: "Book Service", href: "#contact" }, { label: "Call Now", href: "tel:(Your Phone Number)" }] },
{ items: [{ label: "Services", href: "/#services" }, { label: "Why Johns", href: "/#why-us" }, { label: "Our Promise", href: "/#promise" }] },
{ items: [{ label: "FAQ", href: "/#faq" }, { label: "Book Service", href: "/#contact" }, { label: "Call Now", href: "tel:(Your Phone Number)" }] },
{ items: [{ label: "Email Us", href: "mailto:(Your Email)" }, { label: "Licensed & Insured", href: "#" }] }
]}
ariaLabel="Site Footer - Johns Plumbing"