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 (
);
})}
);
};