From 4231c20f2f13ec77c2c8c36fd6ead67cb4b9584e Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 8 Mar 2026 22:52:35 +0000 Subject: [PATCH] Add src/app/shop/page.tsx --- src/app/shop/page.tsx | 174 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 src/app/shop/page.tsx diff --git a/src/app/shop/page.tsx b/src/app/shop/page.tsx new file mode 100644 index 0000000..c5b273a --- /dev/null +++ b/src/app/shop/page.tsx @@ -0,0 +1,174 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen"; +import HeroLogoBillboardSplit from "@/components/sections/hero/HeroLogoBillboardSplit"; +import ProductCardThree from "@/components/sections/product/ProductCardThree"; +import ContactCTA from "@/components/sections/contact/ContactCTA"; +import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal"; +import { ShoppingCart, Zap } from "lucide-react"; +import { useState } from "react"; + +export default function ShopPage() { + const navItems = [ + { name: "Home", id: "/" }, + { name: "About", id: "/about" }, + { name: "Teams", id: "/teams" }, + { name: "Shop", id: "/shop" }, + { name: "Contact", id: "/contact" }, + ]; + + const [cart, setCart] = useState<{ [key: string]: number }>({}); + + const shopProducts = [ + { + id: "jersey-home", name: "Maillot de Rugby - Domicile", price: "€45.00", imageSrc: "http://img.b2bpic.net/free-photo/male-rugby-player-standing-ground_23-2150034490.jpg", imageAlt: "Rugby jersey home", onQuantityChange: (quantity: number) => { + setCart((prev) => ({ + ...prev, + "jersey-home": quantity, + })); + }, + initialQuantity: 1, + }, + { + id: "jersey-away", name: "Maillot de Rugby - Extérieur", price: "€45.00", imageSrc: "http://img.b2bpic.net/free-photo/american-football-player-uniform-training-field_23-2150034543.jpg", imageAlt: "Rugby jersey away", onQuantityChange: (quantity: number) => { + setCart((prev) => ({ + ...prev, + "jersey-away": quantity, + })); + }, + initialQuantity: 1, + }, + { + id: "shorts", name: "Short de Rugby", price: "€35.00", imageSrc: "http://img.b2bpic.net/free-photo/fit-athletic-young-man-training_23-2147955631.jpg", imageAlt: "Rugby shorts", onQuantityChange: (quantity: number) => { + setCart((prev) => ({ + ...prev, + shorts: quantity, + })); + }, + initialQuantity: 1, + }, + { + id: "socks", name: "Chaussettes de Rugby (Paire)", price: "€12.00", imageSrc: "http://img.b2bpic.net/free-photo/close-up-young-athlete-feet-footwear_23-2150067338.jpg", imageAlt: "Rugby socks", onQuantityChange: (quantity: number) => { + setCart((prev) => ({ + ...prev, + socks: quantity, + })); + }, + initialQuantity: 1, + }, + { + id: "scarf", name: "Écharpe Club Cadaujacais", price: "€18.00", imageSrc: "http://img.b2bpic.net/free-photo/winter-accessories-isolated-white-background_23-2150067418.jpg", imageAlt: "Club scarf", onQuantityChange: (quantity: number) => { + setCart((prev) => ({ + ...prev, + scarf: quantity, + })); + }, + initialQuantity: 1, + }, + { + id: "cap", name: "Casquette Club Cadaujacais", price: "€22.00", imageSrc: "http://img.b2bpic.net/free-photo/baseball-cap-isolated-white_23-2150067428.jpg", imageAlt: "Club cap", onQuantityChange: (quantity: number) => { + setCart((prev) => ({ + ...prev, + cap: quantity, + })); + }, + initialQuantity: 1, + }, + { + id: "backpack", name: "Sac à Dos Club Cadaujacais", price: "€65.00", imageSrc: "http://img.b2bpic.net/free-photo/red-stylish-backpack-isolated-white-background_23-2150067435.jpg", imageAlt: "Club backpack", onQuantityChange: (quantity: number) => { + setCart((prev) => ({ + ...prev, + backpack: quantity, + })); + }, + initialQuantity: 1, + }, + { + id: "bottle", name: "Gourde de Rugby - 750ml", price: "€28.00", imageSrc: "http://img.b2bpic.net/free-photo/water-bottle-isolated-white_23-2150067442.jpg", imageAlt: "Rugby water bottle", onQuantityChange: (quantity: number) => { + setCart((prev) => ({ + ...prev, + bottle: quantity, + })); + }, + initialQuantity: 1, + }, + ]; + + return ( + + + +
+ +
+ +
+ +
+ +
+ +
+ + +
+ ); +}