import React, { useState } from 'react'; import { Layers, X, Map as MapIcon, Mountain, Bike, Wind, Ruler, Eye, Box } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; export function MapLayersMenu({ mapStyleType, setMapStyleType, activeLayers = [], setActiveLayers }: { mapStyleType?: string, setMapStyleType?: (type: string) => void, activeLayers?: string[], setActiveLayers?: (layers: string[]) => void }) { const [isOpen, setIsOpen] = useState(false); const details = [ { id: 'traffic', label: 'Traffic', icon: , color: 'rose' }, { id: 'cycling', label: 'Cycling', icon: , color: 'emerald' }, { id: 'terrain', label: 'Terrain', icon: , color: 'amber' }, { id: 'airquality', label: 'Air Quality', icon: , color: 'cyan' }, { id: 'measure', label: 'Measure', icon: , color: 'indigo' }, { id: '3dbuildings', label: '3D Buildings', icon: , color: 'purple' }, { id: 'labels', label: 'Street Labels', icon: , color: 'orange' }, ]; const mapTypes = [ { id: 'default', label: 'Default', icon: }, { id: 'satellite', label: 'Satellite', icon: }, { id: 'terrain', label: 'Terrain', icon: }, { id: 'cycling', label: 'Cycling', icon: }, { id: 'navigation', label: 'Nav', icon: }, ]; const toggleLayer = (id: string) => { if (!setActiveLayers) return; if (activeLayers.includes(id)) { setActiveLayers(activeLayers.filter(l => l !== id)); } else { setActiveLayers([...activeLayers, id]); } }; return (
{isOpen && (

Map Layers

Map Type

{mapTypes.map((type) => ( ))}

Overlays

{details.map((detail) => { const isActive = activeLayers.includes(detail.id); return ( ); })}

Active Layers

{activeLayers.length > 0 ? ( activeLayers.map(layer => { const detail = details.find(d => d.id === layer); return detail ? ( {detail.label} ) : null; }) ) : ( No layers active )}
)}
); }