/** * src/components/RangeMap.jsx * Renders a Leaflet map with a range circle centered on the species' known habitat. */ import React, { useEffect, useState } from 'react' import { motion } from 'framer-motion' import styles from './RangeMap.module.css' export default function RangeMap({ range, commonName, color }) { const [ready, setReady] = useState(false) const [MapContainer, setMapContainer] = useState(null) const [TileLayer, setTileLayer] = useState(null) const [Circle, setCircle] = useState(null) const [Popup, setPopup] = useState(null) useEffect(() => { import('react-leaflet').then(rl => { setMapContainer(() => rl.MapContainer) setTileLayer(() => rl.TileLayer) setCircle(() => rl.Circle) setPopup(() => rl.Popup) setReady(true) }) }, []) if (!range) return null return (

Range Map

{ready && MapContainer ? ( {commonName} — approximate range ) : (
Loading map…
)}

{range.description}

) }