import { useState, useEffect } from "react"; import { Link } from "wouter"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Card } from "@/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { ArrowLeft, ShoppingCart, Star, Plus, Loader2 } from "lucide-react"; import { supabase } from "@/lib/supabase"; import { useAuth } from "@/lib/auth"; interface Listing { id: string; title: string; category: "achievement" | "code" | "service" | "credential"; price: number; seller: string; rating: number; purchases: number; image?: string; } export default function Marketplace() { const { user } = useAuth(); const [listings, setListings] = useState([]); const [balance] = useState(2500); const [selectedCategory, setSelectedCategory] = useState("all"); const [loading, setLoading] = useState(true); useEffect(() => { fetchListings(); }, [selectedCategory]); const fetchListings = async () => { try { let query = supabase.from('marketplace_listings').select('*'); if (selectedCategory !== 'all') { query = query.eq('category', selectedCategory); } const { data, error } = await query.order('created_at', { ascending: false }); if (!error && data) { setListings(data.map(l => ({ id: l.id, title: l.title, category: l.category as any, price: l.price, seller: l.seller_id, rating: 4.5, purchases: l.purchase_count || 0 }))); } } catch (err) { console.error('Error fetching listings:', err); } finally { setLoading(false); } }; const filteredListings = selectedCategory === "all" ? listings : listings.filter((l) => l.category === selectedCategory); const getCategoryColor = (category: string) => { switch (category) { case "achievement": return "bg-yellow-500"; case "code": return "bg-blue-500"; case "service": return "bg-purple-500"; case "credential": return "bg-green-500"; default: return "bg-gray-500"; } }; return (
{/* Header */}

Marketplace

Balance

{balance} LP

{/* Category Tabs */} All Items Code Achievements Services Credentials {loading ? (
) : filteredListings.length === 0 ? (

No items found in this category

) : (
{filteredListings.map((listing) => ( {/* Category Badge */}
{listing.category}
{/* Title */}

{listing.title}

{/* Seller Info */}

by {listing.seller}

{/* Rating & Purchases */}
{listing.rating}
{listing.purchases} purchased
{/* Price & Button */}
{listing.price} LP
))}
)}
{/* Featured Section */}

Featured Sellers

{["CodeMaster", "TechGuru", "AchievmentHunter"].map((seller) => (

{seller}

★★★★★

))}
); }