Merge version_1 into main #1

Merged
bender merged 4 commits from version_1 into main 2026-02-25 12:21:08 +00:00
4 changed files with 35 additions and 24 deletions

View File

@@ -5,10 +5,17 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import { useBlogPosts } from "@/hooks/useBlogPosts"; import { useBlogPosts } from "@/hooks/useBlogPosts";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen'; import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import BlogCardOne from '@/components/sections/blog/BlogCardOne'; import BlogCardOne from '@/components/sections/blog/BlogCardOne';
import Link from 'next/link';
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" },
];
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="text-shift" defaultButtonVariant="text-shift"
@@ -23,21 +30,15 @@ export default function BlogPage() {
headingFontWeight="bold" headingFontWeight="bold"
> >
<ReactLenis root> <ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen <NavbarStyleFullscreen
navItems={[ navItems={navItems}
{ name: "Home", id: "/" },
{ name: "Hero", id: "hero-section" },
{ name: "About", id: "about-section" },
{ name: "Feature", id: "features-section" },
{ name: "Product", id: "product-section" },
{ name: "Testimonial", id: "testimonial-section" },
{ name: "Contact", id: "contact-section" },
]}
brandName="Bamboleya" brandName="Bamboleya"
bottomLeftText="Global Community" bottomLeftText="Global Community"
bottomRightText="hello@example.com" bottomRightText="hello@example.com"
topBarClassName="" topBarClassName=""
/> />
</div>
{isLoading ? ( {isLoading ? (
<div className="w-content-width mx-auto py-20 text-center"> <div className="w-content-width mx-auto py-20 text-center">

View File

@@ -27,7 +27,7 @@ export default function LandingPage() {
> >
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarStyleFullscreen <NavbarStyleFullscreen
navItems={[{ "name": "Hero", "id": "hero-section" }, { "name": "About", "id": "about-section" }, { "name": "Feature", "id": "features-section" }, { "name": "Product", "id": "product-section" }, { "name": "Testimonial", "id": "testimonial-section" }, { "name": "Contact", "id": "contact-section" }]} navItems={[{ "name": "Hero", "id": "hero-section" }, { "name": "About", "id": "about-section" }, { "name": "Features", "id": "features-section" }, { "name": "Products", "id": "product-section" }, { "name": "Testimonials", "id": "testimonial-section" }, { "name": "Contact", "id": "contact-section" }, { "name": "Blog", "id": "/blog" }, { "name": "Shop", "id": "/shop" }]}
brandName="Bamboleya" brandName="Bamboleya"
bottomLeftText="Global Community" bottomLeftText="Global Community"
bottomRightText="hello@example.com" bottomRightText="hello@example.com"
@@ -49,7 +49,7 @@ export default function LandingPage() {
imageSrc="http://img.b2bpic.net/free-photo/cocoa-mugs-with-marshmallows-near-fireplace_1321-1587.jpg" imageSrc="http://img.b2bpic.net/free-photo/cocoa-mugs-with-marshmallows-near-fireplace_1321-1587.jpg"
imageAlt="Cozy interior of Bamboleya Coffee Shop with warm lighting and coffee setup" imageAlt="Cozy interior of Bamboleya Coffee Shop with warm lighting and coffee setup"
mediaAnimation="slide-up" mediaAnimation="slide-up"
marqueeItems={[{ text: 'Locally Sourced Beans', icon: CheckCircle }, { text: 'Daily Fresh Pastries', icon: CheckCircle }, { text: 'Free WiFi & Power Outlets', icon: CheckCircle }]} marqueeItems={[{ type: 'text-icon', text: 'Locally Sourced Beans', icon: CheckCircle }, { type: 'text-icon', text: 'Daily Fresh Pastries', icon: CheckCircle }, { type: 'text-icon', text: 'Free WiFi & Power Outlets', icon: CheckCircle }]}
marqueeSpeed={30} marqueeSpeed={30}
showMarqueeCard={true} showMarqueeCard={true}
ariaLabel="Hero section featuring Bamboleya Coffee Shop's welcoming atmosphere" ariaLabel="Hero section featuring Bamboleya Coffee Shop's welcoming atmosphere"
@@ -58,7 +58,7 @@ export default function LandingPage() {
<div id="about-section" data-section="about-section"> <div id="about-section" data-section="about-section">
<InlineImageSplitTextAbout <InlineImageSplitTextAbout
heading={[{ "type": "text", "content": "Our Story" }, { "type": "image", "src": "http://img.b2bpic.net/free-photo/top-view-pine-seeds-with-wooden-spoon_23-2148519147.jpg", "alt": "Organic coffee beans in a rustic wooden bowl" }, { "type": "text", "content": "Bamboleya was born from a passion for exceptional coffee and a desire to create a welcoming space where every cup tells a story. Founded in 2018, we've been dedicated to sourcing ethically grown beans and crafting the perfect brew for our community." }, { "type": "image", "src": "http://img.b2bpic.net/free-photo/black-man-chief-is-preparing-cake-molds-before-fill-them-with-batter-his-professional-artisan-confectionery_346278-681.jpg", "alt": "Barista pouring espresso with a smile" }, { "type": "text", "content": "Every morning, our skilled baristas begin their day by selecting the finest beans from sustainable farms around the world. We believe that great coffee starts with great relationships—between farmers, roasters, and you." }]} heading={[{ "type": "text", "content": "Our Story" }, { "type": "image", "src": "http://img.b2bpic.net/free-photo/top-view-pine-seeds-with-wooden-spoon_23-2148519147.jpg", "alt": "Organic coffee beans in a rustic wooden bowl" }, { "type": "text", "content": "Bamboleya was born from a passion for exceptional coffee and a desire to create a welcoming space where every cup tells a story. Founded in 2018, we've been dedicated to sourcing ethically grown beans and crafting the perfect brew for our community." }, { "type": "image", "src": "http://img.b2bpic.net/free-photo/black-man-chief-is-preparing-cake-molds-before-fill-them-with-batter-his-professional-artisan-confectionery_346278-681.jpg", "alt": "Barista pouring espresso with a smile" }, { "type": "text", "content": "Every morning, our skilled baristas begin their day by selecting the finest beans from sustainable farms around the world. We believe that great coffee starts with great relationships—between farmers, roasters, and you." }]}
buttons={[{ "text": "Visit Us", "href": "#contact-section", "props": { "variant": "primary" } }, { "text": "Explore Our Beans", "href": "#product-section", "props": { "variant": "secondary" } }]} buttons={[{ "text": "Visit Us", "href": "#contact-section" }, { "text": "Explore Our Beans", "href": "#product-section" }]}
buttonAnimation="slide-up" buttonAnimation="slide-up"
useInvertedBackground={true} useInvertedBackground={true}
/> />

View File

@@ -10,6 +10,7 @@ import ProductCart from "@/components/ecommerce/cart/ProductCart";
import { useProductDetail } from "@/hooks/useProductDetail"; import { useProductDetail } from "@/hooks/useProductDetail";
import { useCart } from "@/hooks/useCart"; import { useCart } from "@/hooks/useCart";
import { useCheckout } from "@/hooks/useCheckout"; import { useCheckout } from "@/hooks/useCheckout";
import Link from 'next/link';
interface ProductPageProps { interface ProductPageProps {
params: Promise<{ id: string }>; params: Promise<{ id: string }>;
@@ -76,18 +77,21 @@ function ProductPageContent({ params }: ProductPageProps) {
const navItems = [ const navItems = [
{ name: "Home", id: "/" }, { name: "Home", id: "/" },
{ name: "Shop", id: "/shop" }, { name: "Shop", id: "/shop" },
{ name: "Blog", id: "/blog" },
]; ];
const navbarComponent = ( const navbarComponent = (
<div id="navbar" data-section="navbar"> <div id="nav" data-section="nav">
<NavbarStyleFullscreen <NavbarStyleFullscreen
navItems={navItems} navItems={navItems}
brandName="Bamboleya" brandName="Bamboleya"
bottomLeftText="Global Community" bottomLeftText="Global Community"
bottomRightText="hello@example.com" bottomRightText="hello@example.com"
topBarClassName="" topBarClassName=""
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/> />
<button onClick={() => setCartOpen(true)} className="fixed top-6 right-6 z-[101] px-4 py-2 bg-primary text-primary-foreground rounded-md transition-transform hover:scale-105">
Cart ({cartItems.length})
</button>
</div> </div>
); );

View File

@@ -9,6 +9,7 @@ import { useProductCatalog } from "@/hooks/useProductCatalog";
import { useCart } from "@/hooks/useCart"; import { useCart } from "@/hooks/useCart";
import { useCheckout } from "@/hooks/useCheckout"; import { useCheckout } from "@/hooks/useCheckout";
import ProductCart from "@/components/ecommerce/cart/ProductCart"; import ProductCart from "@/components/ecommerce/cart/ProductCart";
import Link from 'next/link';
function ShopPageContent() { function ShopPageContent() {
const { const {
@@ -43,6 +44,7 @@ function ShopPageContent() {
const navItems = [ const navItems = [
{ name: "Home", id: "/" }, { name: "Home", id: "/" },
{ name: "Shop", id: "/shop" }, { name: "Shop", id: "/shop" },
{ name: "Blog", id: "/blog" },
]; ];
if (isLoading) { if (isLoading) {
@@ -60,15 +62,17 @@ function ShopPageContent() {
headingFontWeight="bold" headingFontWeight="bold"
> >
<ReactLenis root> <ReactLenis root>
<div id="navbar" data-section="navbar"> <div id="nav" data-section="nav">
<NavbarStyleFullscreen <NavbarStyleFullscreen
navItems={navItems} navItems={navItems}
brandName="Bamboleya" brandName="Bamboleya"
bottomLeftText="Global Community" bottomLeftText="Global Community"
bottomRightText="hello@example.com" bottomRightText="hello@example.com"
topBarClassName="" topBarClassName=""
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/> />
<button onClick={() => setCartOpen(true)} className="fixed top-6 right-6 z-[101] px-4 py-2 bg-primary text-primary-foreground rounded-md transition-transform hover:scale-105">
Cart ({cartItems.length})
</button>
</div> </div>
<div id="loading-section" data-section="loading-section"> <div id="loading-section" data-section="loading-section">
<main className="min-h-screen flex items-center justify-center pt-20"> <main className="min-h-screen flex items-center justify-center pt-20">
@@ -109,15 +113,17 @@ function ShopPageContent() {
headingFontWeight="bold" headingFontWeight="bold"
> >
<ReactLenis root> <ReactLenis root>
<div id="navbar" data-section="navbar"> <div id="nav" data-section="nav">
<NavbarStyleFullscreen <NavbarStyleFullscreen
navItems={navItems} navItems={navItems}
brandName="Bamboleya" brandName="Bamboleya"
bottomLeftText="Global Community" bottomLeftText="Global Community"
bottomRightText="hello@example.com" bottomRightText="hello@example.com"
topBarClassName="" topBarClassName=""
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/> />
<button onClick={() => setCartOpen(true)} className="fixed top-6 right-6 z-[101] px-4 py-2 bg-primary text-primary-foreground rounded-md transition-transform hover:scale-105">
Cart ({cartItems.length})
</button>
</div> </div>
<div id="product-catalog" data-section="product-catalog"> <div id="product-catalog" data-section="product-catalog">
<ProductCatalog <ProductCatalog