Update app/shop/page.tsx

This commit is contained in:
kleap-admin 2026-01-18 18:52:58 +00:00
parent 0f9e582eaa
commit d00472ced0
1 changed files with 89 additions and 0 deletions

89
app/shop/page.tsx Normal file
View File

@ -0,0 +1,89 @@
"use client";
import { Container } from "@/components/container";
import { Heading } from "@/components/heading";
import { Subheading } from "@/components/subheading";
import { Footer } from "@/components/footer";
import { ProductCard, Product } from "@/components/product-card";
import { Button } from "@/components/ui/button";
import { useState } from "react";
const allProducts: Product[] = [
{
id: "1",
name: "Classic Oxford Leather",
price: 189,
category: "Formal",
image: "https://images.unsplash.com/photo-1653868250450-b83e6263d427?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wyOTY1MDl8MHwxfHNlYXJjaHwzfHxsdXh1cnklMjBzaG9lcyUyMHNuZWFrZXJzJTIwZm9ybWFsJTIwbWVuJTIwd29tZW4lMjBmYXNoaW9ufGVufDB8MHx8fDE3Njg1NDE4MTl8MA&ixlib=rb-4.1.0&q=80&w=1080",
isNew: true
},
{
id: "2",
name: "Urban Runner Pro",
price: 129,
category: "Sneakers",
image: "https://images.unsplash.com/photo-1600202280810-e0b3f6f1933e?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wyOTY1MDl8MHwxfHNlYXJjaHwxfHxsdXh1cnklMjBzaG9lcyUyMHNuZWFrZXJzJTIwZm9ybWFsJTIwbWVuJTIwd29tZW4lMjBmYXNoaW9ufGVufDB8MHx8fDE3Njg1NDE4MTl8MA&ixlib=rb-4.1.0&q=80&w=1080"
},
{
id: "3",
name: "Elegance Stiletto",
price: 249,
category: "Women",
image: "https://images.unsplash.com/photo-1618274158630-bc47a614b3a5?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wyOTY1MDl8MHwxfHNlYXJjaHwyfHxsdXh1cnklMjBzaG9lcyUyMHNuZWFrZXJzJTIwZm9ybWFsJTIwbWVuJTIwd29tZW4lMjBmYXNoaW9ufGVufDB8MHx8fDE3Njg1NDE4MTl8MA&ixlib=rb-4.1.0&q=80&w=1080",
isSale: true
},
{
id: "4",
name: "Heritage Brogue",
price: 210,
category: "Formal",
image: "https://images.unsplash.com/photo-1664505504065-31f8937d2261?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wyOTY1MDl8MHwxfHNlYXJjaHw0fHxsdXh1cnklMjBzaG9lcyUyMHNuZWFrZXJzJTIwZm9ybWFsJTIwbWVuJTIwd29tZW4lMjBmYXNoaW9ufGVufDB8MHx8fDE3Njg1NDE4MTl8MA&ixlib=rb-4.1.0&q=80&w=1080"
},
{
id: "5",
name: "Casual Loafer",
price: 145,
category: "Casual",
image: "https://images.unsplash.com/photo-1646139498425-5bceb422ba6a?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wyOTY1MDl8MHwxfHNlYXJjaHw1fHxsdXh1cnklMjBzaG9lcyUyMHNuZWFrZXJzJTIwZm9ybWFsJTIwbWVuJTIwd29tZW4lMjBmYXNoaW9ufGVufDB8MHx8fDE3Njg1NDE4MTl8MA&ixlib=rb-4.1.0&q=80&w=1080"
}
];
const categories = ["All", "Formal", "Sneakers", "Women", "Casual"];
export default function ShopPage() {
const [activeCategory, setActiveCategory] = useState("All");
const filteredProducts = activeCategory === "All"
? allProducts
: allProducts.filter(p => p.category === activeCategory);
return (
<main className="min-h-screen pt-32">
<Container className="pb-24">
<div className="mb-12">
<Heading>Shop Collection</Heading>
<Subheading className="mt-2">Explore our full range of premium footwear.</Subheading>
</div>
<div className="flex flex-wrap gap-4 mb-12">
{categories.map((cat) => (
<Button
key={cat}
variant={activeCategory === cat ? "default" : "outline"}
onClick={() => setActiveCategory(cat)}
className="rounded-full"
>
{cat}
</Button>
))}
</div>
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-8">
{filteredProducts.map((product) => (
<ProductCard key={product.id} product={product} />
))}
</div>
</Container>
<Footer />
</main>
);
}