import React, { useState } from 'react'; import { BagType, PackingItem, LuggageConfig, CustomBag } from '../types'; import { sound } from '../utils/audio'; import { Backpack, Briefcase, Package, UserCheck, Layers, CheckCircle2, Settings2, Camera, Compass, Tag, Check, Luggage } from 'lucide-react'; interface BagOverviewProps { items: PackingItem[]; selectedBag: BagType | 'all'; onSelectBag: (bag: BagType | 'all') => void; luggageConfig: LuggageConfig; activeTripBags: CustomBag[]; customBags: CustomBag[]; onToggleTripBag: (bagId: BagType) => void; onEditBags: () => void; } function getBagIcon(iconKey?: string) { switch (iconKey) { case 'backpack': return ; case 'briefcase': return ; case 'package': return ; case 'user': return ; case 'camera': return ; case 'compass': return ; default: return ; } } export const BagOverview: React.FC = ({ items, selectedBag, onSelectBag, activeTripBags, customBags, onToggleTripBag, onEditBags, }) => { const [showTripBagPicker, setShowTripBagPicker] = useState(false); const visibleBags = activeTripBags; return (
TRIP BAGS ({visibleBags.length}/{customBags.length})
{/* Inline Trip Bag Loadout Switcher */} {showTripBagPicker && (
WHICH BAGS ARE GOING ON THIS TRIP? (UNCHECKED BAGS AUTOMATICALLY MOVE ITEMS TO YOUR MAIN BAG)
{customBags.map((bag) => { const isBringing = visibleBags.some((b) => b.id === bag.id); return ( ); })}
)}
{visibleBags.map((b) => { const bagItems = items.filter((i) => i.bag === b.id); const bagPacked = bagItems.filter((i) => i.packed).length; const bagTotal = bagItems.length; const pct = bagTotal > 0 ? Math.round((bagPacked / bagTotal) * 100) : 0; const isSelected = selectedBag === b.id; const isFull = bagTotal > 0 && bagPacked === bagTotal; return ( ); })}
); };