// Wander โ€” Map (discovery) screen function MapScreen({ onOpenTour, onTab, dense, brand }) { const { TOURS, NEARBY } = window.WANDER_DATA; const [filter, setFilter] = React.useState('all'); const [selected, setSelected] = React.useState(null); const sel = NEARBY.find(n => n.id === selected); const visible = filter==='all' ? NEARBY : NEARBY.filter(n => n.kind===filter); return (
Now exploring
Marina Bay, Singapore
{[{id:'all',label:'All'},{id:'free',label:'Free'},{id:'pro',label:'Pro'},{id:'current',label:'Active'}].map(f => ( ))}
{sel ? setSelected(null)} onOpen={onOpenTour}/> : }
); } function IllustratedMap({ points, selected, onSelect }) { return (
Downtown Core
Marina South
Singapore Strait
{points.map(p => ( ))}
); } function PinShape({ kind, emoji }) { const bg = kind==='free'?'var(--w-mint)':kind==='pro'?'var(--w-ink)':kind==='current'?'var(--w-coral)':'var(--w-paper)'; const ring = kind==='current'?'0 0 0 3px rgba(255,107,90,0.3),0 6px 14px rgba(0,0,0,0.18)':'0 6px 14px rgba(0,0,0,0.18)'; return (
{emoji}
{kind==='current' &&
}
); } function NearbySheet({ tours, onOpen, dense }) { return (
Within 2 km Nearby tours
{tours.map(t => ( ))}
); } function SelectedCard({ point, tours, onClose, onOpen }) { const matchTour = tours[0]; return (
{point.emoji}
{point.name}
180 m away ยท 3 min walk
); } Object.assign(window, { MapScreen });