import React, { useState } from 'react'; import { Camera, Shirt, Trash2, Palette, Zap, Plus, X } from 'lucide-react'; export default function App() { const [activeTab, setActiveTab] = useState('outfits'); const [wardrobe, setWardrobe] = useState({ tops: [], bottoms: [], turbans: [] }); const [selectedOutfit, setSelectedOutfit] = useState({ topIndex: 0, bottomIndex: 0, turbanIndex: 0 }); const handleFileUpload = (category, event) => { const files = event.target.files; if (!files || files.length === 0) return; Array.from(files).forEach(file => { const reader = new FileReader(); reader.onloadend = () => { const newItem = { id: Date.now() + Math.random(), src: reader.result, color: '#ffffff' }; setWardrobe(prev => ({ ...prev, [category]: [...prev[category], newItem] })); }; reader.readAsDataURL(file); }); }; const updateTurbanColor = (id, newColor) => { setWardrobe(prev => ({ ...prev, turbans: prev.turbans.map(t => t.id === id ? { ...t, color: newColor } : t) })); }; const deleteItem = (category, id) => { setWardrobe(prev => ({ ...prev, [category]: prev[category].filter(item => item.id !== id) })); }; const tabs = [ { id: 'outfits', label: 'Outfits', icon: Zap }, { id: 'tops', label: 'Tops', icon: Shirt }, { id: 'bottoms', label: 'Bottoms', icon: Shirt }, { id: 'turbans', label: 'Turbans', icon: Palette } ]; const selectedTop = wardrobe.tops[selectedOutfit.topIndex]; const selectedBottom = wardrobe.bottoms[selectedOutfit.bottomIndex]; const selectedTurban = wardrobe.turbans[selectedOutfit.turbanIndex]; return (

Wardrobe

{activeTab === 'outfits' ? (
{selectedTurban ? ( ) :
}
{selectedTop && }
{selectedBottom && }
{selectedTurban && (
Tint updateTurbanColor(selectedTurban.id, e.target.value)} className="w-8 h-8 rounded-full border-0 cursor-pointer" />
)}
{['tops', 'bottoms', 'turbans'].map(cat => (

{cat}

{wardrobe[cat].map((item, idx) => (
setSelectedOutfit(p => ({...p, [`${cat.slice(0,-1)}Index`]: idx}))} className={`w-24 h-24 rounded-2xl overflow-hidden flex-shrink-0 cursor-pointer border-4 ${selectedOutfit[`${cat.slice(0,-1)}Index`] === idx ? 'border-blue-500 scale-105' : 'border-transparent'}`}>
))}
))}
) : (
{wardrobe[activeTab].map(item => (
))}
)}
); }