From 9a58e7924453354f8a0474c9602d2da8a074fb96 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 08:18:45 +0000 Subject: [PATCH 1/4] Update src/app/cart/page.tsx --- src/app/cart/page.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app/cart/page.tsx b/src/app/cart/page.tsx index e110355..f10bf7c 100644 --- a/src/app/cart/page.tsx +++ b/src/app/cart/page.tsx @@ -6,8 +6,9 @@ import FooterCard from "@/components/sections/footer/FooterCard"; import { Instagram, Twitter, Youtube, Trash2, Plus, Minus, TrendingUp } from "lucide-react"; import Link from "next/link"; import { useState } from "react"; +import type { LucideIcon } from "lucide-react"; -const TikTok = (props: React.SVGProps) => ( +const TikTok: LucideIcon = (props: React.SVGProps) => ( ) => ( > -); +) as LucideIcon; export default function CartPage() { const navItems = [ @@ -59,7 +60,7 @@ export default function CartPage() { const tax = subtotal * 0.08; const total = subtotal + shipping + tax; - const socialLinks = [ + const socialLinks: Array<{ icon: LucideIcon; href: string; ariaLabel: string }> = [ { icon: Instagram, href: "https://instagram.com/umbra", ariaLabel: "Instagram" }, { icon: Twitter, href: "https://twitter.com/umbra", ariaLabel: "Twitter" }, { icon: TikTok, href: "https://tiktok.com/@umbra", ariaLabel: "TikTok" }, -- 2.49.1 From 47f547e8ce888383814dfaa30bd7ed48ea36e736 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 08:18:45 +0000 Subject: [PATCH 2/4] Update src/app/page.tsx --- src/app/page.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index cd0c949..9779a22 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -11,8 +11,9 @@ import ContactText from "@/components/sections/contact/ContactText"; import FooterCard from "@/components/sections/footer/FooterCard"; import Link from "next/link"; import { Sparkles, TrendingUp, Instagram, Twitter, Youtube } from "lucide-react"; +import type { LucideIcon } from "lucide-react"; -const TikTok = (props: React.SVGProps) => ( +const TikTok: LucideIcon = (props: React.SVGProps) => ( ) => ( > -); +) as LucideIcon; export default function HomePage() { const navItems = [ @@ -34,7 +35,7 @@ export default function HomePage() { { name: "Contact", id: "contact" }, ]; - const socialLinks = [ + const socialLinks: Array<{ icon: LucideIcon; href: string; ariaLabel: string }> = [ { icon: Instagram, href: "https://instagram.com/umbra", ariaLabel: "Instagram" }, { icon: Twitter, href: "https://twitter.com/umbra", ariaLabel: "Twitter" }, { icon: TikTok, href: "https://tiktok.com/@umbra", ariaLabel: "TikTok" }, -- 2.49.1 From d6b4d05bccc5965e0b5de4b13da0681b7b949aa2 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 08:18:45 +0000 Subject: [PATCH 3/4] Update src/app/product/[id]/page.tsx --- src/app/product/[id]/page.tsx | 259 +++++++++++++++++----------------- 1 file changed, 127 insertions(+), 132 deletions(-) diff --git a/src/app/product/[id]/page.tsx b/src/app/product/[id]/page.tsx index f1200f6..c8692e8 100644 --- a/src/app/product/[id]/page.tsx +++ b/src/app/product/[id]/page.tsx @@ -3,11 +3,12 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered"; import FooterCard from "@/components/sections/footer/FooterCard"; -import { Instagram, Twitter, Youtube, ShoppingCart, Heart, Share2 } from "lucide-react"; +import { Instagram, Twitter, Youtube, Heart, ShoppingCart } from "lucide-react"; import Link from "next/link"; import { useState } from "react"; +import type { LucideIcon } from "lucide-react"; -const TikTok = (props: React.SVGProps) => ( +const TikTok: LucideIcon = (props: React.SVGProps) => ( ) => ( > -); +) as LucideIcon; export default function ProductPage() { const navItems = [ @@ -29,27 +30,18 @@ export default function ProductPage() { { name: "Contact", id: "contact" }, ]; - const [quantity, setQuantity] = useState(1); const [selectedSize, setSelectedSize] = useState("M"); const [selectedColor, setSelectedColor] = useState("Black"); - const [isFavorite, setIsFavorite] = useState(false); + const [quantity, setQuantity] = useState(1); + const [isFavorited, setIsFavorited] = useState(false); - const socialLinks = [ + const socialLinks: Array<{ icon: LucideIcon; href: string; ariaLabel: string }> = [ { icon: Instagram, href: "https://instagram.com/umbra", ariaLabel: "Instagram" }, { icon: Twitter, href: "https://twitter.com/umbra", ariaLabel: "Twitter" }, { icon: TikTok, href: "https://tiktok.com/@umbra", ariaLabel: "TikTok" }, { icon: Youtube, href: "https://youtube.com/@umbra", ariaLabel: "YouTube" }, ]; - const product = { - id: "1", name: "Classic Black Hoodie", price: 89.99, - description: "Our signature Classic Black Hoodie combines premium comfort with timeless style. Crafted from high-quality cotton blend fabric, this oversized hoodie features a spacious kangaroo pocket, adjustable drawstrings, and reinforced seams for durability. Perfect for layering or wearing solo, it's the essential streetwear piece for any wardrobe.", image: "http://img.b2bpic.net/free-photo/medium-shot-man-posing-with-hoodie-indoors_23-2149359859.jpg", rating: 4.8, - reviewCount: 247, - inStock: true, - sizes: ["XS", "S", "M", "L", "XL", "XXL"], - colors: ["Black", "Gray", "Navy", "White"], - material: "80% Cotton, 20% Polyester", care: "Machine wash cold with similar colors. Tumble dry low."}; - return ( -
-
- - ← Back to Shop - +
+
+
+ + ← Back to Shop + -
- {/* Product Image */} -
-
+
+ {/* Product Image */} +
{product.name}
-
- {/* Product Details */} -
-

{product.name}

- -
-
- {product.rating} - ({product.reviewCount} reviews) + {/* Product Details */} +
+
+

Premium Collection

+

Classic Black Hoodie

+

$89.99

+

+ Experience the perfect blend of comfort and style with our Classic Black Hoodie. Crafted from premium materials, this versatile piece is ideal for layering or wearing alone. The spacious fit and quality construction make it a wardrobe essential for any streetwear enthusiast. +

-
-
- ${product.price.toFixed(2)} -
+ {/* Color Selection */} +
+ +
+ {["Black", "Grey", "Navy"].map((color) => ( + + ))} +
+
-

{product.description}

+ {/* Size Selection */} +
+ +
+ {["XS", "S", "M", "L", "XL", "XXL"].map((size) => ( + + ))} +
+
- {/* Size Selection */} -
- -
- {product.sizes.map((size) => ( + {/* Quantity */} +
+ +
- ))} -
-
- - {/* Color Selection */} -
- -
- {product.colors.map((color) => ( + {quantity} - ))} +
-
- {/* Quantity */} -
- -
- - {quantity}
-
- {/* Action Buttons */} -
- -
- - + {/* Product Info */} +
+
+

Material

+

100% Premium Cotton

+
+
+

Shipping

+

Free shipping on orders over $150

+
+
+

Returns

+

30-day return policy

+
- - {product.inStock ? ( -

✓ In Stock - Ships within 24 hours

- ) : ( -

Out of Stock

- )}
-
- {/* Product Info */} -
-
-

Material & Care

-

- Material: {product.material} -

-

- Care: {product.care} -

-
-
-

Shipping & Returns

-

• Free shipping on orders over $150

-

• 30-day returns with free return shipping

-

• Easy exchanges within 30 days

+ {/* Related Products */} +
+

Related Products

+
+ {[ + { + name: "Vintage Denim Jacket", price: "$129.99", image: "http://img.b2bpic.net/free-photo/fashionable-woman-wearing-denim-jacket_23-2148859621.jpg"}, + { + name: "Cargo Pants - Khaki", price: "$79.99", image: "http://img.b2bpic.net/free-photo/young-woman-wearing-trucker-hat_23-2149432334.jpg"}, + { + name: "Oversized T-Shirt", price: "$49.99", image: "http://img.b2bpic.net/free-photo/teenager-boy-stylish-clothes-posing_23-2149085228.jpg"}, + ].map((product, i) => ( + +
+ {product.name} +
+

+ {product.name} +

+

{product.price}

+ + ))} +
-- 2.49.1 From 222c0647f5119a0cc9622ab0913d55104b7cbd7e Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 08:18:46 +0000 Subject: [PATCH 4/4] Update src/app/shop/page.tsx --- src/app/shop/page.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app/shop/page.tsx b/src/app/shop/page.tsx index 9828595..6180e60 100644 --- a/src/app/shop/page.tsx +++ b/src/app/shop/page.tsx @@ -8,8 +8,9 @@ import ContactText from "@/components/sections/contact/ContactText"; import FooterCard from "@/components/sections/footer/FooterCard"; import Link from "next/link"; import { TrendingUp, Instagram, Twitter, Youtube } from "lucide-react"; +import type { LucideIcon } from "lucide-react"; -const TikTok = (props: React.SVGProps) => ( +const TikTok: LucideIcon = (props: React.SVGProps) => ( ) => ( > -); +) as LucideIcon; export default function ShopPage() { const navItems = [ @@ -31,7 +32,7 @@ export default function ShopPage() { { name: "Contact", id: "contact" }, ]; - const socialLinks = [ + const socialLinks: Array<{ icon: LucideIcon; href: string; ariaLabel: string }> = [ { icon: Instagram, href: "https://instagram.com/umbra", ariaLabel: "Instagram" }, { icon: Twitter, href: "https://twitter.com/umbra", ariaLabel: "Twitter" }, { icon: TikTok, href: "https://tiktok.com/@umbra", ariaLabel: "TikTok" }, -- 2.49.1