From 563837975b81883810f2bd5367cc30dc271dc130 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 13:42:30 +0000 Subject: [PATCH 1/4] Update src/app/cart/page.tsx --- src/app/cart/page.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/app/cart/page.tsx b/src/app/cart/page.tsx index 8dde930..db2a060 100644 --- a/src/app/cart/page.tsx +++ b/src/app/cart/page.tsx @@ -6,9 +6,8 @@ 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): LucideIcon => ( +const TikTok = (props: React.SVGProps) => ( ): LucideIcon => ( > -) as any; +); export default function CartPage() { const navItems = [ @@ -60,7 +59,7 @@ export default function CartPage() { const tax = subtotal * 0.08; const total = subtotal + shipping + tax; - const socialLinks: Array<{ icon: LucideIcon; href: string; ariaLabel: string }> = [ + const socialLinks: Array<{ icon: React.ComponentType>; 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" }, From cc4a1cd3f361b61e00b6109553bd62f947049277 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 13:42:30 +0000 Subject: [PATCH 2/4] Update src/app/page.tsx --- src/app/page.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 63622da..8d62959 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -11,9 +11,8 @@ 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): LucideIcon => ( +const TikTok = (props: React.SVGProps) => ( ): LucideIcon => ( > -) as any; +); export default function HomePage() { const navItems = [ @@ -35,7 +34,7 @@ export default function HomePage() { { name: "Contact", id: "contact" }, ]; - const socialLinks: Array<{ icon: LucideIcon; href: string; ariaLabel: string }> = [ + const socialLinks: Array<{ icon: React.ComponentType>; 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" }, From 5bf49d5ca8c3dd63128992483c1c658dadeb6eb8 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 13:42:31 +0000 Subject: [PATCH 3/4] Update src/app/product/[id]/page.tsx --- src/app/product/[id]/page.tsx | 153 +++++++++++----------------------- 1 file changed, 47 insertions(+), 106 deletions(-) diff --git a/src/app/product/[id]/page.tsx b/src/app/product/[id]/page.tsx index 9b9fa8f..96c87a9 100644 --- a/src/app/product/[id]/page.tsx +++ b/src/app/product/[id]/page.tsx @@ -3,12 +3,11 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered"; import FooterCard from "@/components/sections/footer/FooterCard"; -import { Instagram, Twitter, Youtube, Heart, ShoppingCart, Minus, Plus } from "lucide-react"; +import { Instagram, Twitter, Youtube, ShoppingCart, Heart } from "lucide-react"; import Link from "next/link"; import { useState } from "react"; -import type { LucideIcon } from "lucide-react"; -const TikTok = (props: React.SVGProps): LucideIcon => ( +const TikTok = (props: React.SVGProps) => ( ): LucideIcon => ( > -) as any; +); export default function ProductDetailPage() { const navItems = [ @@ -31,42 +30,24 @@ export default function ProductDetailPage() { ]; const [quantity, setQuantity] = useState(1); - const [isFavorite, setIsFavorite] = useState(false); const [selectedSize, setSelectedSize] = useState("M"); const [selectedColor, setSelectedColor] = useState("Black"); const product = { id: "1", name: "Classic Black Hoodie", price: 89.99, - originalPrice: 119.99, rating: 4.8, - reviews: 128, - description: "Experience premium comfort with our Classic Black Hoodie. Crafted from high-quality materials, this versatile piece is perfect for any season. Features a spacious kangaroo pocket, drawstring hood, and relaxed fit that pairs well with any outfit.", images: [ - "http://img.b2bpic.net/free-photo/medium-shot-man-posing-with-hoodie-indoors_23-2149359859.jpg", "http://img.b2bpic.net/free-photo/medium-shot-cool-man-with-electric-scooter_23-2149356776.jpg"], - sizes: ["XS", "S", "M", "L", "XL", "XXL"], - colors: ["Black", "Navy", "Gray", "Charcoal"], - specifications: [ - { label: "Material", value: "100% Premium Cotton" }, - { label: "Weight", value: "450 GSM" }, - { label: "Care", value: "Machine wash cold, tumble dry low" }, - { label: "Fit", value: "Relaxed fit" }, - ], + reviews: 124, + description: "Premium quality streetwear hoodie with authentic urban style. Crafted from 100% cotton for maximum comfort and durability. Perfect for everyday wear or layering. Features a relaxed fit and quality embroidered details.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-posing-with-hoodie-indoors_23-2149359859.jpg", sizes: ["XS", "S", "M", "L", "XL", "2XL"], + colors: ["Black", "Gray", "Navy", "White"], }; - const socialLinks: Array<{ icon: LucideIcon; href: string; ariaLabel: string }> = [ + const socialLinks: Array<{ icon: React.ComponentType>; 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 handleAddToCart = () => { - console.log(`Added ${quantity} of ${product.name} (${selectedSize}, ${selectedColor}) to cart`); - }; - - const handleToggleFavorite = () => { - setIsFavorite(!isFavorite); - }; - return ( -
+
@@ -96,64 +77,37 @@ export default function ProductDetailPage() {
- {/* Product Images */} -
-
- {product.name} -
-
- {product.images.map((img, idx) => ( -
- {`${product.name} -
- ))} -
+ {/* Product Image */} +
+ {product.name}
{/* Product Details */}
-

{product.name}

- +

{product.name}

- ${product.price} - ${product.originalPrice} - - {Math.round(((product.originalPrice - product.price) / product.originalPrice) * 100)}% OFF - +
${product.price}
+
⭐ {product.rating} ({product.reviews} reviews)
-
-
- {[...Array(5)].map((_, i) => ( - - ))} -
- - {product.rating} ({product.reviews} reviews) - -
- -

{product.description}

+

{product.description}

{/* Size Selection */} -
+
-
+
{product.sizes.map((size) => (
- {/* Quantity & Buttons */} -
-
+ {/* Quantity Selection */} +
+ +
- {quantity} + {quantity}
+
- - -
- {/* Specifications */} -
-

Specifications

-
- {product.specifications.map((spec, idx) => ( -
- {spec.label} - {spec.value} -
- ))} -
+ {/* Additional Info */} +
+

✓ Free Shipping on orders over $150

+

✓ 30-Day Money Back Guarantee

+

✓ Premium Quality Materials

From 1219d0157899bfc47db4105da127fac170869aec Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 13:42:31 +0000 Subject: [PATCH 4/4] Update src/app/shop/page.tsx --- src/app/shop/page.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/app/shop/page.tsx b/src/app/shop/page.tsx index ad2bdde..aa4492b 100644 --- a/src/app/shop/page.tsx +++ b/src/app/shop/page.tsx @@ -8,9 +8,8 @@ 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): LucideIcon => ( +const TikTok = (props: React.SVGProps) => ( ): LucideIcon => ( > -) as any; +); export default function ShopPage() { const navItems = [ @@ -32,7 +31,7 @@ export default function ShopPage() { { name: "Contact", id: "contact" }, ]; - const socialLinks: Array<{ icon: LucideIcon; href: string; ariaLabel: string }> = [ + const socialLinks: Array<{ icon: React.ComponentType>; 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" },