Merge version_1 into main #1

Merged
bender merged 4 commits from version_1 into main 2026-02-23 01:26:22 +00:00
4 changed files with 99 additions and 103 deletions

View File

@@ -10,6 +10,31 @@ import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
export default function BlogPage() {
const { posts, isLoading } = useBlogPosts();
const navItems = [
{ name: "Home", id: "/" },
{ name: "Services", id: "/#features" },
{ name: "About Us", id: "/#about" },
{ name: "Testimonials", id: "/#testimonials" },
{ name: "Contact", id: "/#contact" },
];
const footerColumns = [
{
title: "Services", items: [
{ label: "Roof Repair", href: "/#features" },
{ label: "New Roofs", href: "/#features" },
{ label: "Gutter Services", href: "/#features" },
],
},
{
title: "Company", items: [
{ label: "About Us", href: "/#about" },
{ label: "Testimonials", href: "/#testimonials" },
{ label: "Contact", href: "/#contact" },
],
},
];
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
@@ -26,60 +51,39 @@ export default function BlogPage() {
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "services" },
{ name: "About Us", id: "about" },
{ name: "Testimonials", id: "testimonials" },
{ name: "Contact", id: "contact" },
]}
navItems={navItems}
brandName="Carter Brothers"
bottomLeftText="Your Trusted Roofing Partner"
bottomRightText="(859) 350-6500"
/>
</div>
{isLoading ? (
<div className="w-content-width mx-auto py-20 text-center">
<p className="text-foreground">Loading posts...</p>
</div>
) : (
<div id="blog" data-section="blog">
<BlogCardTwo
posts={posts}
title="Latest Articles"
description="Insights and updates from our team"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
carouselMode="buttons"
/>
</div>
)}
<div id="footer" data-section="footer">
<FooterBaseReveal
columns={[
{
title: "Services", items: [
{ label: "Roof Repair", href: "#services" },
{ label: "New Roofs", href: "#services" },
{ label: "Gutter Services", href: "#services" },
],
},
{
title: "Company", items: [
{ label: "About Us", href: "#about" },
{ label: "Testimonials", href: "#testimonials" },
{ label: "Contact", href: "#contact" },
],
},
]}
copyrightText="© 2024 Carter Brothers Roof Repair. All rights reserved."
ariaLabel="Footer section"
className="py-8"
{isLoading ? (
<div className="w-content-width mx-auto py-20 text-center min-h-screen flex items-center justify-center">
<p className="text-foreground">Loading posts...</p>
</div>
) : (
<div id="blog" data-section="blog" className="min-h-screen">
<BlogCardTwo
items={posts}
title="Latest Articles"
description="Insights and updates from our team"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
carouselMode="buttons"
/>
</div>
)}
<div id="footer" data-section="footer">
<FooterBaseReveal
columns={footerColumns}
copyrightText="© 2024 Carter Brothers Roof Repair. All rights reserved."
ariaLabel="Footer section"
className="py-8"
/>
</div>
</ReactLenis>
</ThemeProvider>
);

View File

@@ -28,8 +28,8 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "home" },
{ name: "Services", id: "services" },
{ name: "Home", id: "hero" },
{ name: "Services", id: "features" },
{ name: "About Us", id: "about" },
{ name: "Testimonials", id: "testimonials" },
{ name: "Contact", id: "contact" },
@@ -47,7 +47,7 @@ export default function LandingPage() {
tag="Reliable. Experienced. Local."
buttons={[
{ text: "Get a Free Estimate", href: "#contact" },
{ text: "Our Services", href: "#services" },
{ text: "Our Services", href: "#features" },
]}
imageSrc="https://img.b2bpic.net/free-photo/man-sitting-roof_23-2148748778.jpg"
imageAlt="Professional roof repair crew on a residential roof"
@@ -249,9 +249,9 @@ export default function LandingPage() {
columns={[
{
title: "Services", items: [
{ label: "Roof Repair", href: "#services" },
{ label: "New Roofs", href: "#services" },
{ label: "Gutter Services", href: "#services" },
{ label: "Roof Repair", href: "#features" },
{ label: "New Roofs", href: "#features" },
{ label: "Gutter Services", href: "#features" },
],
},
{

View File

@@ -16,6 +16,19 @@ interface ProductPageProps {
params: Promise<{ id: string }>;
}
const navItems = [
{ name: "Home", id: "/" },
{ name: "Services", id: "/#features" },
{ name: "About Us", id: "/#about" },
{ name: "Testimonials", id: "/#testimonials" },
{ name: "Contact", id: "/#contact" },
];
const footerColumns = [
{ title: "Services", items: [{ label: "Roof Repair", href: "/#features" }, { label: "New Roofs", href: "/#features" }, { label: "Gutter Services", href: "/#features" }] },
{ title: "Company", items: [{ label: "About Us", href: "/#about" }, { label: "Testimonials", href: "/#testimonials" }, { label: "Contact", href: "/#contact" }] }
];
export default function ProductPage({ params }: ProductPageProps) {
return (
<Suspense fallback={null}>
@@ -56,8 +69,9 @@ function ProductPageContent({ params }: ProductPageProps) {
const item = createCartItem();
if (item) {
addItem(item);
setCartOpen(true);
}
}, [createCartItem, addItem]);
}, [createCartItem, addItem, setCartOpen]);
const handleBuyNow = useCallback(() => {
if (product) {
@@ -89,16 +103,12 @@ function ProductPageContent({ params }: ProductPageProps) {
headingFontWeight="normal"
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" }
]}
navItems={navItems}
brandName="Carter Brothers"
bottomLeftText="Your Trusted Roofing Partner"
bottomRightText="(859) 350-6500"
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
</div>
<main className="min-h-screen flex items-center justify-center pt-20">
@@ -108,10 +118,7 @@ function ProductPageContent({ params }: ProductPageProps) {
</main>
<div id="footer" data-section="footer">
<FooterBaseReveal
columns={[
{ title: "Services", items: [{ label: "Roof Repair", href: "#services" }, { label: "New Roofs", href: "#services" }, { label: "Gutter Services", href: "#services" }] },
{ title: "Company", items: [{ label: "About Us", href: "#about" }, { label: "Testimonials", href: "#testimonials" }, { label: "Contact", href: "#contact" }] }
]}
columns={footerColumns}
copyrightText="© 2024 Carter Brothers Roof Repair. All rights reserved."
ariaLabel="Footer section"
className="py-8"
@@ -137,16 +144,12 @@ function ProductPageContent({ params }: ProductPageProps) {
headingFontWeight="normal"
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" }
]}
navItems={navItems}
brandName="Carter Brothers"
bottomLeftText="Your Trusted Roofing Partner"
bottomRightText="(859) 350-6500"
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
</div>
<main className="min-h-screen flex items-center justify-center pt-20">
@@ -164,10 +167,7 @@ function ProductPageContent({ params }: ProductPageProps) {
</main>
<div id="footer" data-section="footer">
<FooterBaseReveal
columns={[
{ title: "Services", items: [{ label: "Roof Repair", href: "#services" }, { label: "New Roofs", href: "#services" }, { label: "Gutter Services", href: "#services" }] },
{ title: "Company", items: [{ label: "About Us", href: "#about" }, { label: "Testimonials", href: "#testimonials" }, { label: "Contact", href: "#contact" }] }
]}
columns={footerColumns}
copyrightText="© 2024 Carter Brothers Roof Repair. All rights reserved."
ariaLabel="Footer section"
className="py-8"
@@ -192,16 +192,12 @@ function ProductPageContent({ params }: ProductPageProps) {
headingFontWeight="normal"
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" }
]}
navItems={navItems}
brandName="Carter Brothers"
bottomLeftText="Your Trusted Roofing Partner"
bottomRightText="(859) 350-6500"
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
</div>
<div id="product-detail-card" data-section="product-detail-card">
@@ -242,10 +238,7 @@ function ProductPageContent({ params }: ProductPageProps) {
</div>
<div id="footer" data-section="footer">
<FooterBaseReveal
columns={[
{ title: "Services", items: [{ label: "Roof Repair", href: "#services" }, { label: "New Roofs", href: "#services" }, { label: "Gutter Services", href: "#services" }] },
{ title: "Company", items: [{ label: "About Us", href: "#about" }, { label: "Testimonials", href: "#testimonials" }, { label: "Contact", href: "#contact" }] }
]}
columns={footerColumns}
copyrightText="© 2024 Carter Brothers Roof Repair. All rights reserved."
ariaLabel="Footer section"
className="py-8"

View File

@@ -8,6 +8,19 @@ import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import ProductCatalog from "@/components/ecommerce/productCatalog/ProductCatalog";
import { useProductCatalog } from "@/hooks/useProductCatalog";
const navItems = [
{ name: "Home", id: "/" },
{ name: "Services", id: "/#features" },
{ name: "About Us", id: "/#about" },
{ name: "Testimonials", id: "/#testimonials" },
{ name: "Contact", id: "/#contact" },
];
const footerColumns = [
{ title: "Services", items: [{ label: "Roof Repair", href: "/#features" }, { label: "New Roofs", href: "/#features" }, { label: "Gutter Services", href: "/#features" }] },
{ title: "Company", items: [{ label: "About Us", href: "/#about" }, { label: "Testimonials", href: "/#testimonials" }, { label: "Contact", href: "/#contact" }] }
];
function ShopPageContent() {
const {
products,
@@ -32,16 +45,12 @@ function ShopPageContent() {
headingFontWeight="normal"
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" }
]}
navItems={navItems}
brandName="Carter Brothers"
bottomLeftText="Your Trusted Roofing Partner"
bottomRightText="(859) 350-6500"
button={{ text: "Cart", onClick: () => {} }}
/>
</div>
<main className="min-h-screen flex items-center justify-center pt-20">
@@ -51,10 +60,7 @@ function ShopPageContent() {
</main>
<div id="footer" data-section="footer">
<FooterBaseReveal
columns={[
{ title: "Services", items: [{ label: "Roof Repair", href: "#services" }, { label: "New Roofs", href: "#services" }, { label: "Gutter Services", href: "#services" }] },
{ title: "Company", items: [{ label: "About Us", href: "#about" }, { label: "Testimonials", href: "#testimonials" }, { label: "Contact", href: "#contact" }] }
]}
columns={footerColumns}
copyrightText="© 2024 Carter Brothers Roof Repair. All rights reserved."
ariaLabel="Footer section"
className="py-8"
@@ -79,16 +85,12 @@ function ShopPageContent() {
headingFontWeight="normal"
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" }
]}
navItems={navItems}
brandName="Carter Brothers"
bottomLeftText="Your Trusted Roofing Partner"
bottomRightText="(859) 350-6500"
button={{ text: "Cart", onClick: () => {} }}
/>
</div>
<div id="product-catalog" data-section="product-catalog">
@@ -104,10 +106,7 @@ function ShopPageContent() {
</div>
<div id="footer" data-section="footer">
<FooterBaseReveal
columns={[
{ title: "Services", items: [{ label: "Roof Repair", href: "#services" }, { label: "New Roofs", href: "#services" }, { label: "Gutter Services", href: "#services" }] },
{ title: "Company", items: [{ label: "About Us", href: "#about" }, { label: "Testimonials", href: "#testimonials" }, { label: "Contact", href: "#contact" }] }
]}
columns={footerColumns}
copyrightText="© 2024 Carter Brothers Roof Repair. All rights reserved."
ariaLabel="Footer section"
className="py-8"