Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b777a82f22 | |||
| ed19d6498b | |||
| d6bc41bdd1 | |||
| 4bd99a4c6a | |||
| 49b50c82fa | |||
| c602d7a26c | |||
| 747b00d839 | |||
| 40216b35a7 | |||
| c035149215 | |||
| 2362a12910 | |||
| d44f690532 | |||
| 2f93c67fb0 | |||
| 5bccdb8433 | |||
| 2ee0b19982 | |||
| 82e5c7f12a | |||
| 7838024917 | |||
| a2ac2dd3f0 | |||
| 47add6a9f4 | |||
| c466ffd5f2 | |||
| 1c1597c0b8 |
@@ -1,6 +1,5 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import ReactLenis from "lenis/react";
|
|
||||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
import { useBlogPosts } from "@/hooks/useBlogPosts";
|
import { useBlogPosts } from "@/hooks/useBlogPosts";
|
||||||
|
|
||||||
@@ -16,6 +15,17 @@ import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
|||||||
export default function BlogPage() {
|
export default function BlogPage() {
|
||||||
const { posts, isLoading } = useBlogPosts();
|
const { posts, isLoading } = useBlogPosts();
|
||||||
|
|
||||||
|
const navItems = [
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Shop", id: "/shop" },
|
||||||
|
{ name: "Blog", id: "/blog" },
|
||||||
|
{ name: "Features", id: "/#features" },
|
||||||
|
{ name: "Products", id: "/#products" },
|
||||||
|
{ name: "Testimonials", id: "/#testimonials" },
|
||||||
|
{ name: "FAQ", id: "/#faq" },
|
||||||
|
{ name: "Contact", id: "/#contact" }
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
defaultButtonVariant="slide-background"
|
defaultButtonVariant="slide-background"
|
||||||
@@ -29,80 +39,76 @@ export default function BlogPage() {
|
|||||||
secondaryButtonStyle="layered"
|
secondaryButtonStyle="layered"
|
||||||
headingFontWeight="extrabold"
|
headingFontWeight="extrabold"
|
||||||
>
|
>
|
||||||
<ReactLenis root>
|
<div id="nav" data-section="nav">
|
||||||
<div id="nav" data-section="nav">
|
<NavbarLayoutFloatingInline
|
||||||
<NavbarLayoutFloatingInline
|
navItems={navItems}
|
||||||
navItems={[
|
brandName="Biorogo"
|
||||||
{ name: "Features", id: "#features" }, { name: "Products", id: "#products" }, { name: "Testimonials", id: "#testimonials" }, { name: "FAQ", id: "#faq" }, { name: "Contact", id: "#contact" }
|
button={{ text: "Shop Now", href: "/shop" }}
|
||||||
]}
|
className="py-4 px-6 md:px-8 lg:px-12"
|
||||||
brandName="Biorogo"
|
navItemClassName="text-foreground hover:text-primary-cta"
|
||||||
button={{ text: "Shop Now", href: "/shop" }}
|
buttonClassName=""
|
||||||
className="py-4 px-6 md:px-8 lg:px-12"
|
buttonTextClassName=""
|
||||||
navItemClassName="text-foreground hover:text-primary-cta"
|
/>
|
||||||
buttonClassName=""
|
</div>
|
||||||
buttonTextClassName=""
|
|
||||||
|
{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
|
||||||
|
blogs={posts}
|
||||||
|
title="Latest Articles"
|
||||||
|
description="Insights and updates from our team"
|
||||||
|
animationType="slide-up"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
carouselMode="buttons"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
{isLoading ? (
|
<div id="footer" data-section="footer">
|
||||||
<div className="w-content-width mx-auto py-20 text-center">
|
<FooterBaseCard
|
||||||
<p className="text-foreground">Loading posts...</p>
|
logoText="Biorogo"
|
||||||
</div>
|
columns={[
|
||||||
) : (
|
{
|
||||||
<div id="blog" data-section="blog">
|
title: "Shop", items: [
|
||||||
<BlogCardTwo
|
{ label: "All Cups", href: "/shop" },
|
||||||
blogs={posts}
|
{ label: "Ceramic", href: "/shop" },
|
||||||
title="Latest Articles"
|
{ label: "Glassware", href: "/shop" },
|
||||||
description="Insights and updates from our team"
|
{ label: "Travel Mugs", href: "/shop" },
|
||||||
animationType="slide-up"
|
],
|
||||||
textboxLayout="default"
|
},
|
||||||
useInvertedBackground={false}
|
{
|
||||||
carouselMode="buttons"
|
title: "Company", items: [
|
||||||
/>
|
{ label: "About Us", href: "/#features" },
|
||||||
</div>
|
{ label: "Testimonials", href: "/#testimonials" },
|
||||||
)}
|
{ label: "FAQ", href: "/#faq" },
|
||||||
|
],
|
||||||
<div id="footer" data-section="footer">
|
},
|
||||||
<FooterBaseCard
|
{
|
||||||
logoText="Biorogo"
|
title: "Support", items: [
|
||||||
columns={[
|
{ label: "Contact Us", href: "/#contact" },
|
||||||
{
|
{ label: "Shipping", href: "/shipping" },
|
||||||
title: "Shop", items: [
|
{ label: "Returns", href: "/returns" },
|
||||||
{ label: "All Cups", href: "/#products" },
|
{ label: "Sitemap", href: "/sitemap" },
|
||||||
{ label: "Ceramic", href: "/#products" },
|
],
|
||||||
{ label: "Glassware", href: "/#products" },
|
},
|
||||||
{ label: "Travel Mugs", href: "/#products" },
|
]}
|
||||||
],
|
copyrightText="© 2024 Biorogo. All rights reserved."
|
||||||
},
|
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
||||||
{
|
ariaLabel="Site footer for Biorogo"
|
||||||
title: "Company", items: [
|
className="py-16 md:py-20"
|
||||||
{ label: "About Us", href: "/#features" },
|
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
||||||
{ label: "Testimonials", href: "/#testimonials" },
|
logoTextClassName="text-foreground text-3xl font-extrabold"
|
||||||
{ label: "FAQ", href: "/#faq" },
|
columnTitleClassName="text-foreground text-lg font-semibold"
|
||||||
],
|
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
||||||
},
|
copyrightTextClassName="text-foreground/60 text-sm"
|
||||||
{
|
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
||||||
title: "Support", items: [
|
/>
|
||||||
{ label: "Contact Us", href: "/#contact" },
|
</div>
|
||||||
{ label: "Shipping", href: "/shipping" },
|
|
||||||
{ label: "Returns", href: "/returns" },
|
|
||||||
{ label: "Sitemap", href: "/sitemap" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
copyrightText="© 2024 Biorogo. All rights reserved."
|
|
||||||
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
|
||||||
ariaLabel="Site footer for Biorogo"
|
|
||||||
className="py-16 md:py-20"
|
|
||||||
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
|
||||||
logoTextClassName="text-foreground text-3xl font-extrabold"
|
|
||||||
columnTitleClassName="text-foreground text-lg font-semibold"
|
|
||||||
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
|
||||||
copyrightTextClassName="text-foreground/60 text-sm"
|
|
||||||
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</ReactLenis>
|
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
1286
src/app/layout.tsx
1286
src/app/layout.tsx
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,7 @@ import ContactSplit from '@/components/sections/contact/ContactSplit';
|
|||||||
import FaqDouble from '@/components/sections/faq/FaqDouble';
|
import FaqDouble from '@/components/sections/faq/FaqDouble';
|
||||||
import FeatureCardSeven from '@/components/sections/feature/FeatureCardSeven';
|
import FeatureCardSeven from '@/components/sections/feature/FeatureCardSeven';
|
||||||
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
||||||
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
|
import HeroSplitDualMedia from '@/components/sections/hero/HeroSplitDualMedia';
|
||||||
import ProductCardThree from '@/components/sections/product/ProductCardThree';
|
import ProductCardThree from '@/components/sections/product/ProductCardThree';
|
||||||
import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive';
|
import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive';
|
||||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
@@ -27,7 +27,7 @@ export default function LandingPage() {
|
|||||||
>
|
>
|
||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarLayoutFloatingInline
|
<NavbarLayoutFloatingInline
|
||||||
navItems={[{ name: "Features", id: "features" }, { name: "Products", id: "products" }, { name: "Testimonials", id: "testimonials" }, { name: "FAQ", id: "faq" }, { name: "Contact", id: "contact" }]}
|
navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }, { name: "Blog", id: "/blog" }, { name: "Features", id: "features" }, { name: "Products", id: "products" }, { name: "Testimonials", id: "testimonials" }, { name: "FAQ", id: "faq" }, { name: "Contact", id: "contact" }]}
|
||||||
brandName="Biorogo"
|
brandName="Biorogo"
|
||||||
button={{ text: "Shop Now", href: "#products" }}
|
button={{ text: "Shop Now", href: "#products" }}
|
||||||
className="py-4 px-6 md:px-8 lg:px-12"
|
className="py-4 px-6 md:px-8 lg:px-12"
|
||||||
@@ -36,21 +36,23 @@ export default function LandingPage() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="hero" data-section="hero">
|
<div id="hero" data-section="hero">
|
||||||
<HeroOverlay
|
<HeroSplitDualMedia
|
||||||
title="Elevate Your Daily Rituals with Biorogo Cups"
|
title="Elevate Your Daily Rituals with Biorogo's Crafted Cups"
|
||||||
description="Discover our curated collection of beautifully designed, sustainable, and handcrafted cups for every occasion. Experience the perfect blend of aesthetics and functionality."
|
description="Discover our beautifully designed, sustainable, and handcrafted cups for every occasion. Experience the perfect blend of aesthetics and functionality tailored for your daily joy."
|
||||||
|
background={{ variant: 'plain' }}
|
||||||
tag="Artistry in Every Sip"
|
tag="Artistry in Every Sip"
|
||||||
tagIcon={Sparkles}
|
tagIcon={Sparkles}
|
||||||
tagAnimation="slide-up"
|
tagAnimation="slide-up"
|
||||||
buttons={[{ text: "Explore Collection", href: "#products" }, { text: "Learn More", href: "#features" }]}
|
buttons={[{ text: "Explore Collection", href: "#products" }, { text: "Learn More", href: "#features" }]}
|
||||||
buttonAnimation="slide-up"
|
buttonAnimation="slide-up"
|
||||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_34my1kGeblbsCcwUUCcjBY9WFkg/uploaded-1771505618512-apxd95pq.mp4"
|
mediaItems={[
|
||||||
imageAlt="Collection of elegant Biorogo cups"
|
{ imageSrc: "https://images.unsplash.com/photo-1579294246101-526487e47a50?q=80&w=2940&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", imageAlt: "Coffee being poured into a Biorogo cup" },
|
||||||
|
{ imageSrc: "https://images.unsplash.com/photo-1549488339-a99f1807d476?q=80&w=2940&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", imageAlt: "Person holding a handcrafted Biorogo mug" }
|
||||||
|
]}
|
||||||
mediaAnimation="opacity"
|
mediaAnimation="opacity"
|
||||||
|
rating={5}
|
||||||
|
ratingText="Loved by Thousands of Customers"
|
||||||
ariaLabel="Welcome to Biorogo Cups"
|
ariaLabel="Welcome to Biorogo Cups"
|
||||||
textPosition="bottom-left"
|
|
||||||
showBlur={true}
|
|
||||||
showDimOverlay={false}
|
|
||||||
titleClassName="text-foreground text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-extrabold"
|
titleClassName="text-foreground text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-extrabold"
|
||||||
descriptionClassName="text-foreground/80 text-lg md:text-xl"
|
descriptionClassName="text-foreground/80 text-lg md:text-xl"
|
||||||
tagClassName="text-accent text-sm md:text-base"
|
tagClassName="text-accent text-sm md:text-base"
|
||||||
@@ -65,7 +67,7 @@ export default function LandingPage() {
|
|||||||
features={[
|
features={[
|
||||||
{ id: 1, title: "Artisan Craftsmanship", description: "Each Biorogo cup is meticulously handcrafted by skilled artisans, ensuring unique character and superior quality that stands the test of time.", imageSrc: "https://img.b2bpic.net/free-photo/couple-with-brown-aprons-making-vase_1157-30724.jpg", imageAlt: "Hands shaping clay on a pottery wheel." },
|
{ id: 1, title: "Artisan Craftsmanship", description: "Each Biorogo cup is meticulously handcrafted by skilled artisans, ensuring unique character and superior quality that stands the test of time.", imageSrc: "https://img.b2bpic.net/free-photo/couple-with-brown-aprons-making-vase_1157-30724.jpg", imageAlt: "Hands shaping clay on a pottery wheel." },
|
||||||
{ id: 2, title: "Sustainable Materials", description: "We prioritize the planet by sourcing only eco-friendly and sustainably harvested materials, offering you beautiful products with a minimal environmental footprint.", imageSrc: "https://img.b2bpic.net/free-photo/close-up-couple-holding-cup-coffee_23-2147918181.jpg", imageAlt: "Green leaves growing out of a recycled cup." },
|
{ id: 2, title: "Sustainable Materials", description: "We prioritize the planet by sourcing only eco-friendly and sustainably harvested materials, offering you beautiful products with a minimal environmental footprint.", imageSrc: "https://img.b2bpic.net/free-photo/close-up-couple-holding-cup-coffee_23-2147918181.jpg", imageAlt: "Green leaves growing out of a recycled cup." },
|
||||||
{ id: 3, title: "Thoughtful Design", description: "Our designs blend modern aesthetics with ergonomic comfort, making every sip an experience. From minimalist elegance to vibrant patterns, there's a Biorogo cup for every style.", imageSrc: "https://img.b2bpic.net/free-photo/three-cups-coffee-wooden-board_114579-52730.jpg", imageAlt: "A collection of stylish, modern designed cups." }
|
{ id: 3, title: "Thoughtful Design", description: "Our designs blend modern aesthetics with ergonomic comfort, making every sip an experience. From minimalist elegance to vibrant patterns, there's a Biorogo cup for every style.", imageSrc: "https://img.b2bpic.net/free-photo/three-cups-coffee-wooden-board_114579-52730.jpg?_wi=1", imageAlt: "A collection of stylish, modern designed cups." }
|
||||||
]}
|
]}
|
||||||
animationType="slide-up"
|
animationType="slide-up"
|
||||||
textboxLayout="default"
|
textboxLayout="default"
|
||||||
@@ -82,10 +84,10 @@ export default function LandingPage() {
|
|||||||
<div id="products" data-section="products">
|
<div id="products" data-section="products">
|
||||||
<ProductCardThree
|
<ProductCardThree
|
||||||
products={[
|
products={[
|
||||||
{ id: "1", name: "Minimalist Ceramic Mug", price: "$24.99", imageSrc: "https://img.b2bpic.net/free-photo/hot-espresso-tea-coffee-food_1203-4245.jpg", imageAlt: "A simple white ceramic mug" },
|
{ id: "1", name: "Minimalist Ceramic Mug", price: "$24.99", imageSrc: "https://img.b2bpic.net/free-photo/hot-espresso-tea-coffee-food_1203-4245.jpg?_wi=1", imageAlt: "A simple white ceramic mug" },
|
||||||
{ id: "2", name: "Eco-Friendly Glass Tumbler", price: "$19.99", imageSrc: "https://img.b2bpic.net/free-photo/coffee-cups-table_93675-130857.jpg", imageAlt: "A clear, eco-friendly glass tumbler" },
|
{ id: "2", name: "Eco-Friendly Glass Tumbler", price: "$19.99", imageSrc: "https://img.b2bpic.net/free-photo/coffee-cups-table_93675-130857.jpg?_wi=1", imageAlt: "A clear, eco-friendly glass tumbler" },
|
||||||
{ id: "3", name: "Bamboo Travel Cup", price: "$29.99", imageSrc: "https://img.b2bpic.net/free-photo/three-cups-coffee-wooden-board_114579-52730.jpg", imageAlt: "A reusable bamboo travel cup with lid" },
|
{ id: "3", name: "Bamboo Travel Cup", price: "$29.99", imageSrc: "https://img.b2bpic.net/free-photo/three-cups-coffee-wooden-board_114579-52730.jpg?_wi=2", imageAlt: "A reusable bamboo travel cup with lid" },
|
||||||
{ id: "4", name: "Artisan Espresso Cup Set", price: "$39.99", imageSrc: "https://img.b2bpic.net/free-photo/upside-down-cups-rack_53876-63375.jpg", imageAlt: "A small, artisan-crafted espresso cup" }
|
{ id: "4", name: "Artisan Espresso Cup Set", price: "$39.99", imageSrc: "https://img.b2bpic.net/free-photo/upside-down-cups-rack_53876-63375.jpg?_wi=1", imageAlt: "A small, artisan-crafted espresso cup" }
|
||||||
]}
|
]}
|
||||||
carouselMode="buttons"
|
carouselMode="buttons"
|
||||||
gridVariant="four-items-2x2-equal-grid"
|
gridVariant="four-items-2x2-equal-grid"
|
||||||
@@ -108,10 +110,10 @@ export default function LandingPage() {
|
|||||||
<div id="testimonials" data-section="testimonials">
|
<div id="testimonials" data-section="testimonials">
|
||||||
<TestimonialCardFive
|
<TestimonialCardFive
|
||||||
testimonials={[
|
testimonials={[
|
||||||
{ id: "1", name: "Sarah L., Coffee Enthusiast", date: "Date: October 26, 2023", title: "My new favorite mug!", quote: "The craftsmanship of my Biorogo mug is exceptional. It keeps my coffee warm longer and feels so comfortable in hand. Truly elevates my morning ritual.", tag: "Ceramic Collection", avatarSrc: "https://img.b2bpic.net/free-photo/portrait-young-smiling-pretty-girl-plaid-shirt-posing_114579-70643.jpg", avatarAlt: "Sarah L. avatar", imageSrc: "https://img.b2bpic.net/free-photo/hot-espresso-tea-coffee-food_1203-4245.jpg", imageAlt: "Minimalist ceramic mug" },
|
{ id: "1", name: "Sarah L., Coffee Enthusiast", date: "Date: October 26, 2023", title: "My new favorite mug!", quote: "The craftsmanship of my Biorogo mug is exceptional. It keeps my coffee warm longer and feels so comfortable in hand. Truly elevates my morning ritual.", tag: "Ceramic Collection", avatarSrc: "https://img.b2bpic.net/free-photo/portrait-young-smiling-pretty-girl-plaid-shirt-posing_114579-70643.jpg", avatarAlt: "Sarah L. avatar", imageSrc: "https://img.b2bpic.net/free-photo/hot-espresso-tea-coffee-food_1203-4245.jpg?_wi=2", imageAlt: "Minimalist ceramic mug" },
|
||||||
{ id: "2", name: "Mark T., Eco-Conscious Shopper", date: "Date: November 15, 2023", title: "Stylish and sustainable", quote: "I love my Biorogo glass tumbler. It's perfect for my iced coffees and I feel good knowing it's made from recycled materials. Plus, it looks great!", tag: "Glassware Line", avatarSrc: "https://img.b2bpic.net/free-photo/young-woman-green-cozy-large-knitted-sweater-cute-smiling-with-crossed-hands_343596-7420.jpg", avatarAlt: "Mark T. avatar", imageSrc: "https://img.b2bpic.net/free-photo/coffee-cups-table_93675-130857.jpg", imageAlt: "Eco-friendly glass tumbler" },
|
{ id: "2", name: "Mark T., Eco-Conscious Shopper", date: "Date: November 15, 2023", title: "Stylish and sustainable", quote: "I love my Biorogo glass tumbler. It's perfect for my iced coffees and I feel good knowing it's made from recycled materials. Plus, it looks great!", tag: "Glassware Line", avatarSrc: "https://img.b2bpic.net/free-photo/young-woman-green-cozy-large-knitted-sweater-cute-smiling-with-crossed-hands_343596-7420.jpg", avatarAlt: "Mark T. avatar", imageSrc: "https://img.b2bpic.net/free-photo/coffee-cups-table_93675-130857.jpg?_wi=2", imageAlt: "Eco-friendly glass tumbler" },
|
||||||
{ id: "3", name: "Emily R., Daily Commuter", date: "Date: December 01, 2023", title: "Travel cup essential", quote: "The bamboo travel cup is a game-changer. It's lightweight, spill-proof, and keeps my tea hot during my busy commute. Highly recommend!", tag: "Travel Gear", avatarSrc: "https://img.b2bpic.net/free-photo/close-up-confident-corporate-woman-professional-entrepreneur-smiling-cross-arms-chest-smiling-enthusiastic-standing-white-background_1258-85600.jpg", avatarAlt: "Emily R. avatar", imageSrc: "https://img.b2bpic.net/free-photo/three-cups-coffee-wooden-board_114579-52730.jpg", imageAlt: "Bamboo travel cup" },
|
{ id: "3", name: "Emily R., Daily Commuter", date: "Date: December 01, 2023", title: "Travel cup essential", quote: "The bamboo travel cup is a game-changer. It's lightweight, spill-proof, and keeps my tea hot during my busy commute. Highly recommend!", tag: "Travel Gear", avatarSrc: "https://img.b2bpic.net/free-photo/close-up-confident-corporate-woman-professional-entrepreneur-smiling-cross-arms-chest-smiling-enthusiastic-standing-white-background_1258-85600.jpg", avatarAlt: "Emily R. avatar", imageSrc: "https://img.b2bpic.net/free-photo/three-cups-coffee-wooden-board_114579-52730.jpg?_wi=3", imageAlt: "Bamboo travel cup" },
|
||||||
{ id: "4", name: "David K., Home Barista", date: "Date: January 10, 2024", title: "Perfect espresso experience", quote: "The artisan espresso cups are beautiful and truly enhance the coffee experience. The quality is evident, and they're a joy to use daily.", tag: "Espresso Series", avatarSrc: "https://img.b2bpic.net/free-photo/smiling-face-gorgeous-latin-american-woman_1262-5766.jpg", avatarAlt: "David K. avatar", imageSrc: "https://img.b2bpic.net/free-photo/upside-down-cups-rack_53876-63375.jpg", imageAlt: "Artisan espresso cup" }
|
{ id: "4", name: "David K., Home Barista", date: "Date: January 10, 2024", title: "Perfect espresso experience", quote: "The artisan espresso cups are beautiful and truly enhance the coffee experience. The quality is evident, and they're a joy to use daily.", tag: "Espresso Series", avatarSrc: "https://img.b2bpic.net/free-photo/smiling-face-gorgeous-latin-american-woman_1262-5766.jpg", avatarAlt: "David K. avatar", imageSrc: "https://img.b2bpic.net/free-photo/upside-down-cups-rack_53876-63375.jpg?_wi=2", imageAlt: "Artisan espresso cup" }
|
||||||
]}
|
]}
|
||||||
title="What Our Customers Say"
|
title="What Our Customers Say"
|
||||||
description="Hear from the Biorogo community about their favorite cups and why they love them."
|
description="Hear from the Biorogo community about their favorite cups and why they love them."
|
||||||
|
|||||||
@@ -2,98 +2,276 @@
|
|||||||
|
|
||||||
import { use, useCallback } from "react";
|
import { use, useCallback } from "react";
|
||||||
import { useRouter } from "next/navigation";
|
import { useRouter } from "next/navigation";
|
||||||
import ReactLenis from "lenis/react";
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
import { ThemeProvider } => {
|
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||||
const navigationItems = [
|
import ProductDetailCard from "@/components/ecommerce/productDetail/ProductDetailCard";
|
||||||
{ name: "Features", id: "/#features" },
|
import ProductCart from "@/components/ecommerce/cart/ProductCart";
|
||||||
{ name: "Products", id: "/#products" },
|
import { useProductDetail } from "@/hooks/useProductDetail";
|
||||||
{ name: "Testimonials", id: "/#testimonials" },
|
import { useCart } from "@/hooks/useCart";
|
||||||
{ name: "FAQ", id: "/#faq" },
|
import { useCheckout } from "@/hooks/useCheckout";
|
||||||
{ name: "Contact", id: "/#contact" }
|
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
||||||
];
|
|
||||||
|
|
||||||
return (
|
interface ProductPageProps {
|
||||||
<ThemeProvider
|
params: Promise<{ id: string }>;
|
||||||
defaultButtonVariant="slide-background"
|
}
|
||||||
defaultTextAnimation="background-highlight"
|
|
||||||
borderRadius="rounded"
|
export default function ProductPage({ params }: ProductPageProps) {
|
||||||
contentWidth="small"
|
const { id } = use(params);
|
||||||
sizing="largeSmall"
|
const router = useRouter();
|
||||||
background="none"
|
|
||||||
cardStyle="inset"
|
const {
|
||||||
primaryButtonStyle="primary-glow"
|
product,
|
||||||
secondaryButtonStyle="layered"
|
isLoading,
|
||||||
headingFontWeight="extrabold"
|
images,
|
||||||
>
|
meta,
|
||||||
<ReactLenis root>
|
variants,
|
||||||
<div id="navbar" data-section="navbar">
|
quantityVariant,
|
||||||
<NavbarLayoutFloatingInline
|
selectedQuantity,
|
||||||
navItems={navigationItems}
|
createCartItem,
|
||||||
brandName="Biorogo"
|
} = useProductDetail(id);
|
||||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
|
||||||
className="py-4 px-6 md:px-8 lg:px-12"
|
const {
|
||||||
navItemClassName="text-foreground hover:text-primary-cta"
|
items: cartItems,
|
||||||
buttonClassName=""
|
isOpen: cartOpen,
|
||||||
buttonTextClassName=""
|
setIsOpen: setCartOpen,
|
||||||
/>
|
addItem,
|
||||||
</div>
|
updateQuantity,
|
||||||
<div id="product-detail-card" data-section="product-detail-card">
|
removeItem,
|
||||||
<ProductDetailCard
|
total: cartTotal,
|
||||||
layout="page"
|
getCheckoutItems,
|
||||||
name={product.name}
|
} = useCart();
|
||||||
price={product.price}
|
|
||||||
salePrice={meta.salePrice}
|
const { buyNow, checkout, isLoading: isCheckoutLoading } = useCheckout();
|
||||||
rating={product.rating || 0}
|
|
||||||
description={product.description}
|
const navItems = [
|
||||||
images={images}
|
{ name: "Home", id: "/" },
|
||||||
variants={variants.length > 0 ? variants : undefined}
|
{ name: "Shop", id: "/shop" },
|
||||||
quantity={quantityVariant}
|
{ name: "Blog", id: "/blog" },
|
||||||
ribbon={meta.ribbon}
|
{ name: "Features", id: "/#features" },
|
||||||
inventoryStatus={meta.inventoryStatus}
|
{ name: "Products", id: "/#products" },
|
||||||
inventoryQuantity={meta.inventoryQuantity}
|
{ name: "Testimonials", id: "/#testimonials" },
|
||||||
sku={meta.sku}
|
{ name: "FAQ", id: "/#faq" },
|
||||||
buttons={[
|
{ name: "Contact", id: "/#contact" }
|
||||||
{ text: "Add To Cart", onClick: handleAddToCart },
|
];
|
||||||
{ text: "Buy Now", onClick: handleBuyNow },
|
|
||||||
]}
|
const handleAddToCart = useCallback(() => {
|
||||||
/>
|
const item = createCartItem();
|
||||||
</div>
|
if (item) {
|
||||||
<div id="product-cart" data-section="product-cart">
|
addItem(item);
|
||||||
<ProductCart
|
}
|
||||||
isOpen={cartOpen}
|
}, [createCartItem, addItem]);
|
||||||
onClose={() => setCartOpen(false)}
|
|
||||||
items={cartItems}
|
const handleBuyNow = useCallback(() => {
|
||||||
onQuantityChange={updateQuantity}
|
if (product) {
|
||||||
onRemove={removeItem}
|
buyNow(product, selectedQuantity);
|
||||||
total={`$${cartTotal}`}
|
}
|
||||||
buttons={[
|
}, [product, selectedQuantity, buyNow]);
|
||||||
{
|
|
||||||
text: isCheckoutLoading ? "Processing..." : "Check Out", onClick: handleCheckout,
|
const handleCheckout = useCallback(async () => {
|
||||||
},
|
if (cartItems.length === 0) return;
|
||||||
]}
|
|
||||||
/>
|
const currentUrl = new URL(window.location.href);
|
||||||
</div>
|
currentUrl.searchParams.set("success", "true");
|
||||||
<div id="footer" data-section="footer">
|
|
||||||
<FooterBaseCard
|
await checkout(getCheckoutItems(), { successUrl: currentUrl.toString() });
|
||||||
logoText="Biorogo"
|
}, [cartItems, checkout, getCheckoutItems]);
|
||||||
columns={[
|
|
||||||
{ title: "Shop", items: [{ label: "All Cups", href: "/#products" }, { label: "Ceramic", href: "/#products" }, { label: "Glassware", href: "/#products" }, { label: "Travel Mugs", href: "/#products" }] },
|
if (isLoading) {
|
||||||
{ title: "Company", items: [{ label: "About Us", href: "/#features" }, { label: "Testimonials", href: "/#testimonials" }, { label: "FAQ", href: "/#faq" }] },
|
return (
|
||||||
{ title: "Support", items: [{ label: "Contact Us", href: "/#contact" }, { label: "Shipping", href: "/shipping" }, { label: "Returns", href: "/returns" }, { label: "Sitemap", href: "/sitemap" }] }
|
<ThemeProvider
|
||||||
]}
|
defaultButtonVariant="slide-background"
|
||||||
copyrightText="© 2024 Biorogo. All rights reserved."
|
defaultTextAnimation="background-highlight"
|
||||||
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
borderRadius="rounded"
|
||||||
ariaLabel="Site footer for Biorogo"
|
contentWidth="small"
|
||||||
className="py-16 md:py-20"
|
sizing="largeSmall"
|
||||||
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
background="none"
|
||||||
logoTextClassName="text-foreground text-3xl font-extrabold"
|
cardStyle="inset"
|
||||||
columnTitleClassName="text-foreground text-lg font-semibold"
|
primaryButtonStyle="primary-glow"
|
||||||
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
secondaryButtonStyle="layered"
|
||||||
copyrightTextClassName="text-foreground/60 text-sm"
|
headingFontWeight="extrabold"
|
||||||
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
>
|
||||||
/>
|
<div id="nav" data-section="nav">
|
||||||
</div>
|
<NavbarLayoutFloatingInline
|
||||||
</ReactLenis>
|
navItems={navItems}
|
||||||
</ThemeProvider>
|
brandName="Biorogo"
|
||||||
);
|
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||||
|
className="py-4 px-6 md:px-8 lg:px-12"
|
||||||
|
navItemClassName="text-foreground hover:text-primary-cta"
|
||||||
|
buttonClassName=""
|
||||||
|
buttonTextClassName=""
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div id="loading-indicator" data-section="loading-indicator">
|
||||||
|
<main className="min-h-screen flex items-center justify-center pt-20">
|
||||||
|
<p className="text-foreground">Loading product...</p>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseCard
|
||||||
|
logoText="Biorogo"
|
||||||
|
columns={[
|
||||||
|
{ title: "Shop", items: [{ label: "All Cups", href: "/shop" }, { label: "Ceramic", href: "/shop" }, { label: "Glassware", href: "/shop" }, { label: "Travel Mugs", href: "/shop" }] },
|
||||||
|
{ title: "Company", items: [{ label: "About Us", href: "/#features" }, { label: "Testimonials", href: "/#testimonials" }, { label: "FAQ", href: "/#faq" }] },
|
||||||
|
{ title: "Support", items: [{ label: "Contact Us", href: "/#contact" }, { label: "Shipping", href: "/shipping" }, { label: "Returns", href: "/returns" }, { label: "Sitemap", href: "/sitemap" }] }
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 Biorogo. All rights reserved."
|
||||||
|
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
||||||
|
ariaLabel="Site footer for Biorogo"
|
||||||
|
className="py-16 md:py-20"
|
||||||
|
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
||||||
|
logoTextClassName="text-foreground text-3xl font-extrabold"
|
||||||
|
columnTitleClassName="text-foreground text-lg font-semibold"
|
||||||
|
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
||||||
|
copyrightTextClassName="text-foreground/60 text-sm"
|
||||||
|
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!product) {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="slide-background"
|
||||||
|
defaultTextAnimation="background-highlight"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="small"
|
||||||
|
sizing="largeSmall"
|
||||||
|
background="none"
|
||||||
|
cardStyle="inset"
|
||||||
|
primaryButtonStyle="primary-glow"
|
||||||
|
secondaryButtonStyle="layered"
|
||||||
|
headingFontWeight="extrabold"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingInline
|
||||||
|
navItems={navItems}
|
||||||
|
brandName="Biorogo"
|
||||||
|
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||||
|
className="py-4 px-6 md:px-8 lg:px-12"
|
||||||
|
navItemClassName="text-foreground hover:text-primary-cta"
|
||||||
|
buttonClassName=""
|
||||||
|
buttonTextClassName=""
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div id="product-not-found" data-section="product-not-found">
|
||||||
|
<main className="min-h-screen flex items-center justify-center pt-20">
|
||||||
|
<div className="text-center">
|
||||||
|
<p className="text-foreground mb-4">Product not found</p>
|
||||||
|
<button
|
||||||
|
onClick={() => router.push("/shop")}
|
||||||
|
className="primary-button px-6 py-2 rounded-theme"
|
||||||
|
>
|
||||||
|
Back to Shop
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseCard
|
||||||
|
logoText="Biorogo"
|
||||||
|
columns={[
|
||||||
|
{ title: "Shop", items: [{ label: "All Cups", href: "/shop" }, { label: "Ceramic", href: "/shop" }, { label: "Glassware", href: "/shop" }, { label: "Travel Mugs", href: "/shop" }] },
|
||||||
|
{ title: "Company", items: [{ label: "About Us", href: "/#features" }, { label: "Testimonials", href: "/#testimonials" }, { label: "FAQ", href: "/#faq" }] },
|
||||||
|
{ title: "Support", items: [{ label: "Contact Us", href: "/#contact" }, { label: "Shipping", href: "/shipping" }, { label: "Returns", href: "/returns" }, { label: "Sitemap", href: "/sitemap" }] }
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 Biorogo. All rights reserved."
|
||||||
|
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
||||||
|
ariaLabel="Site footer for Biorogo"
|
||||||
|
className="py-16 md:py-20"
|
||||||
|
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
||||||
|
logoTextClassName="text-foreground text-3xl font-extrabold"
|
||||||
|
columnTitleClassName="text-foreground text-lg font-semibold"
|
||||||
|
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
||||||
|
copyrightTextClassName="text-foreground/60 text-sm"
|
||||||
|
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="slide-background"
|
||||||
|
defaultTextAnimation="background-highlight"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="small"
|
||||||
|
sizing="largeSmall"
|
||||||
|
background="none"
|
||||||
|
cardStyle="inset"
|
||||||
|
primaryButtonStyle="primary-glow"
|
||||||
|
secondaryButtonStyle="layered"
|
||||||
|
headingFontWeight="extrabold"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingInline
|
||||||
|
navItems={navItems}
|
||||||
|
brandName="Biorogo"
|
||||||
|
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||||
|
className="py-4 px-6 md:px-8 lg:px-12"
|
||||||
|
navItemClassName="text-foreground hover:text-primary-cta"
|
||||||
|
buttonClassName=""
|
||||||
|
buttonTextClassName=""
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div id="product-detail-card" data-section="product-detail-card">
|
||||||
|
<ProductDetailCard
|
||||||
|
layout="page"
|
||||||
|
name={product.name}
|
||||||
|
price={product.price}
|
||||||
|
salePrice={meta.salePrice}
|
||||||
|
rating={product.rating || 0}
|
||||||
|
description={product.description}
|
||||||
|
images={images}
|
||||||
|
variants={variants.length > 0 ? variants : undefined}
|
||||||
|
quantity={quantityVariant}
|
||||||
|
ribbon={meta.ribbon}
|
||||||
|
inventoryStatus={meta.inventoryStatus}
|
||||||
|
inventoryQuantity={meta.inventoryQuantity}
|
||||||
|
sku={meta.sku}
|
||||||
|
buttons={[
|
||||||
|
{ text: "Add To Cart", onClick: handleAddToCart },
|
||||||
|
{ text: "Buy Now", onClick: handleBuyNow },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div id="product-cart" data-section="product-cart">
|
||||||
|
<ProductCart
|
||||||
|
isOpen={cartOpen}
|
||||||
|
onClose={() => setCartOpen(false)}
|
||||||
|
items={cartItems}
|
||||||
|
onQuantityChange={updateQuantity}
|
||||||
|
onRemove={removeItem}
|
||||||
|
total={`$${cartTotal}`}
|
||||||
|
buttons={[
|
||||||
|
{
|
||||||
|
text: isCheckoutLoading ? "Processing..." : "Check Out", onClick: handleCheckout,
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseCard
|
||||||
|
logoText="Biorogo"
|
||||||
|
columns={[
|
||||||
|
{ title: "Shop", items: [{ label: "All Cups", href: "/shop" }, { label: "Ceramic", href: "/shop" }, { label: "Glassware", href: "/shop" }, { label: "Travel Mugs", href: "/shop" }] },
|
||||||
|
{ title: "Company", items: [{ label: "About Us", href: "/#features" }, { label: "Testimonials", href: "/#testimonials" }, { label: "FAQ", href: "/#faq" }] },
|
||||||
|
{ title: "Support", items: [{ label: "Contact Us", href: "/#contact" }, { label: "Shipping", href: "/shipping" }, { label: "Returns", href: "/returns" }, { label: "Sitemap", href: "/sitemap" }] }
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 Biorogo. All rights reserved."
|
||||||
|
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
||||||
|
ariaLabel="Site footer for Biorogo"
|
||||||
|
className="py-16 md:py-20"
|
||||||
|
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
||||||
|
logoTextClassName="text-foreground text-3xl font-extrabold"
|
||||||
|
columnTitleClassName="text-foreground text-lg font-semibold"
|
||||||
|
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
||||||
|
copyrightTextClassName="text-foreground/60 text-sm"
|
||||||
|
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import ReactLenis from "lenis/react";
|
|
||||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
|
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||||
import ProductCatalog from "@/components/ecommerce/productCatalog/ProductCatalog";
|
import ProductCatalog from "@/components/ecommerce/productCatalog/ProductCatalog";
|
||||||
import { useProductCatalog } from "@/hooks/useProductCatalog";
|
import { useProductCatalog } from "@/hooks/useProductCatalog";
|
||||||
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
||||||
@@ -16,6 +15,17 @@ export default function ShopPage() {
|
|||||||
filters,
|
filters,
|
||||||
} = useProductCatalog({ basePath: "/shop" });
|
} = useProductCatalog({ basePath: "/shop" });
|
||||||
|
|
||||||
|
const navItems = [
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Shop", id: "/shop" },
|
||||||
|
{ name: "Blog", id: "/blog" },
|
||||||
|
{ name: "Features", id: "/#features" },
|
||||||
|
{ name: "Products", id: "/#products" },
|
||||||
|
{ name: "Testimonials", id: "/#testimonials" },
|
||||||
|
{ name: "FAQ", id: "/#faq" },
|
||||||
|
{ name: "Contact", id: "/#contact" }
|
||||||
|
];
|
||||||
|
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
return (
|
return (
|
||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
@@ -30,46 +40,42 @@ export default function ShopPage() {
|
|||||||
secondaryButtonStyle="layered"
|
secondaryButtonStyle="layered"
|
||||||
headingFontWeight="extrabold"
|
headingFontWeight="extrabold"
|
||||||
>
|
>
|
||||||
<ReactLenis root>
|
<div id="nav" data-section="nav">
|
||||||
<div id="navbar" data-section="navbar">
|
<NavbarLayoutFloatingInline
|
||||||
<NavbarLayoutFloatingInline
|
navItems={navItems}
|
||||||
navItems={[
|
brandName="Biorogo"
|
||||||
{ name: "Features", id: "/#features" }, { name: "Products", id: "/#products" }, { name: "Testimonials", id: "/#testimonials" }, { name: "FAQ", id: "/#faq" }, { name: "Contact", id: "/#contact" }
|
button={{ text: "Cart", onClick: () => {} }}
|
||||||
]}
|
className="py-4 px-6 md:px-8 lg:px-12"
|
||||||
brandName="Biorogo"
|
navItemClassName="text-foreground hover:text-primary-cta"
|
||||||
button={{ text: "Cart", onClick: () => {} }}
|
buttonClassName=""
|
||||||
className="py-4 px-6 md:px-8 lg:px-12"
|
buttonTextClassName=""
|
||||||
navItemClassName="text-foreground hover:text-primary-cta"
|
/>
|
||||||
buttonClassName=""
|
</div>
|
||||||
buttonTextClassName=""
|
<div id="loading-indicator" data-section="loading-indicator">
|
||||||
/>
|
<main className="min-h-screen flex items-center justify-center pt-20">
|
||||||
</div>
|
<p className="text-foreground">Loading products...</p>
|
||||||
<div id="loading-indicator" data-section="loading-indicator">
|
</main>
|
||||||
<main className="min-h-screen flex items-center justify-center pt-20">
|
</div>
|
||||||
<p className="text-foreground">Loading products...</p>
|
<div id="footer" data-section="footer">
|
||||||
</main>
|
<FooterBaseCard
|
||||||
</div>
|
logoText="Biorogo"
|
||||||
<div id="footer" data-section="footer">
|
columns={[
|
||||||
<FooterBaseCard
|
{ title: "Shop", items: [{ label: "All Cups", href: "/shop" }, { label: "Ceramic", href: "/shop" }, { label: "Glassware", href: "/shop" }, { label: "Travel Mugs", href: "/shop" }] },
|
||||||
logoText="Biorogo"
|
{ title: "Company", items: [{ label: "About Us", href: "/#features" }, { label: "Testimonials", href: "/#testimonials" }, { label: "FAQ", href: "/#faq" }] },
|
||||||
columns={[
|
{ title: "Support", items: [{ label: "Contact Us", href: "/#contact" }, { label: "Shipping", href: "/shipping" }, { label: "Returns", href: "/returns" }, { label: "Sitemap", href: "/sitemap" }] }
|
||||||
{ title: "Shop", items: [{ label: "All Cups", href: "/#products" }, { label: "Ceramic", href: "/#products" }, { label: "Glassware", href: "/#products" }, { label: "Travel Mugs", href: "/#products" }] },
|
]}
|
||||||
{ title: "Company", items: [{ label: "About Us", href: "/#features" }, { label: "Testimonials", href: "/#testimonials" }, { label: "FAQ", href: "/#faq" }] },
|
copyrightText="© 2024 Biorogo. All rights reserved."
|
||||||
{ title: "Support", items: [{ label: "Contact Us", href: "/#contact" }, { label: "Shipping", href: "/shipping" }, { label: "Returns", href: "/returns" }, { label: "Sitemap", href: "/sitemap" }] }
|
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
||||||
]}
|
ariaLabel="Site footer for Biorogo"
|
||||||
copyrightText="© 2024 Biorogo. All rights reserved."
|
className="py-16 md:py-20"
|
||||||
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
||||||
ariaLabel="Site footer for Biorogo"
|
logoTextClassName="text-foreground text-3xl font-extrabold"
|
||||||
className="py-16 md:py-20"
|
columnTitleClassName="text-foreground text-lg font-semibold"
|
||||||
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
||||||
logoTextClassName="text-foreground text-3xl font-extrabold"
|
copyrightTextClassName="text-foreground/60 text-sm"
|
||||||
columnTitleClassName="text-foreground text-lg font-semibold"
|
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
||||||
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
/>
|
||||||
copyrightTextClassName="text-foreground/60 text-sm"
|
</div>
|
||||||
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</ReactLenis>
|
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -87,12 +93,9 @@ export default function ShopPage() {
|
|||||||
secondaryButtonStyle="layered"
|
secondaryButtonStyle="layered"
|
||||||
headingFontWeight="extrabold"
|
headingFontWeight="extrabold"
|
||||||
>
|
>
|
||||||
<ReactLenis root>
|
<div id="nav" data-section="nav">
|
||||||
<div id="navbar" data-section="navbar">
|
|
||||||
<NavbarLayoutFloatingInline
|
<NavbarLayoutFloatingInline
|
||||||
navItems={[
|
navItems={navItems}
|
||||||
{ name: "Features", id: "/#features" }, { name: "Products", id: "/#products" }, { name: "Testimonials", id: "/#testimonials" }, { name: "FAQ", id: "/#faq" }, { name: "Contact", id: "/#contact" }
|
|
||||||
]}
|
|
||||||
brandName="Biorogo"
|
brandName="Biorogo"
|
||||||
button={{ text: "Cart", onClick: () => {} }}
|
button={{ text: "Cart", onClick: () => {} }}
|
||||||
className="py-4 px-6 md:px-8 lg:px-12"
|
className="py-4 px-6 md:px-8 lg:px-12"
|
||||||
@@ -100,39 +103,38 @@ export default function ShopPage() {
|
|||||||
buttonClassName=""
|
buttonClassName=""
|
||||||
buttonTextClassName=""
|
buttonTextClassName=""
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div id="product-catalog" data-section="product-catalog">
|
<div id="product-catalog" data-section="product-catalog">
|
||||||
<ProductCatalog
|
<ProductCatalog
|
||||||
layout="page"
|
layout="page"
|
||||||
products={products}
|
products={products}
|
||||||
searchValue={search}
|
searchValue={search}
|
||||||
onSearchChange={setSearch}
|
onSearchChange={setSearch}
|
||||||
searchPlaceholder="Search products..."
|
searchPlaceholder="Search products..."
|
||||||
filters={filters}
|
filters={filters}
|
||||||
emptyMessage="No products found"
|
emptyMessage="No products found"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseCard
|
||||||
|
logoText="Biorogo"
|
||||||
|
columns={[
|
||||||
|
{ title: "Shop", items: [{ label: "All Cups", href: "/shop" }, { label: "Ceramic", href: "/shop" }, { label: "Glassware", href: "/shop" }, { label: "Travel Mugs", href: "/shop" }] },
|
||||||
|
{ title: "Company", items: [{ label: "About Us", href: "/#features" }, { label: "Testimonials", href: "/#testimonials" }, { label: "FAQ", href: "/#faq" }] },
|
||||||
|
{ title: "Support", items: [{ label: "Contact Us", href: "/#contact" }, { label: "Shipping", href: "/shipping" }, { label: "Returns", href: "/returns" }, { label: "Sitemap", href: "/sitemap" }] }
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 Biorogo. All rights reserved."
|
||||||
|
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
||||||
|
ariaLabel="Site footer for Biorogo"
|
||||||
|
className="py-16 md:py-20"
|
||||||
|
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
||||||
|
logoTextClassName="text-foreground text-3xl font-extrabold"
|
||||||
|
columnTitleClassName="text-foreground text-lg font-semibold"
|
||||||
|
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
||||||
|
copyrightTextClassName="text-foreground/60 text-sm"
|
||||||
|
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div id="footer" data-section="footer">
|
|
||||||
<FooterBaseCard
|
|
||||||
logoText="Biorogo"
|
|
||||||
columns={[
|
|
||||||
{ title: "Shop", items: [{ label: "All Cups", href: "/#products" }, { label: "Ceramic", href: "/#products" }, { label: "Glassware", href: "/#products" }, { label: "Travel Mugs", href: "/#products" }] },
|
|
||||||
{ title: "Company", items: [{ label: "About Us", href: "/#features" }, { label: "Testimonials", href: "/#testimonials" }, { label: "FAQ", href: "/#faq" }] },
|
|
||||||
{ title: "Support", items: [{ label: "Contact Us", href: "/#contact" }, { label: "Shipping", href: "/shipping" }, { label: "Returns", href: "/returns" }, { label: "Sitemap", href: "/sitemap" }] }
|
|
||||||
]}
|
|
||||||
copyrightText="© 2024 Biorogo. All rights reserved."
|
|
||||||
onPrivacyClick={() => console.log('Privacy policy clicked')}
|
|
||||||
ariaLabel="Site footer for Biorogo"
|
|
||||||
className="py-16 md:py-20"
|
|
||||||
cardClassName="bg-card rounded-t-3xl shadow-lg border-t border-l border-r border-accent/20"
|
|
||||||
logoTextClassName="text-foreground text-3xl font-extrabold"
|
|
||||||
columnTitleClassName="text-foreground text-lg font-semibold"
|
|
||||||
columnItemClassName="text-foreground/80 hover:text-primary-cta"
|
|
||||||
copyrightTextClassName="text-foreground/60 text-sm"
|
|
||||||
privacyButtonClassName="text-foreground/60 text-sm hover:text-primary-cta"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</ReactLenis>
|
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user