Merge version_1 into main
Merge version_1 into main
This commit was merged in pull request #1.
This commit is contained in:
@@ -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>
|
||||
);
|
||||
|
||||
@@ -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" },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user