We need to add a location component that displays the venue of the event using OpenStreetMap (OSM).
Requirements:
- Interactive Map: Display a pin at the exact location of the event.
- Provider: Use OpenStreetMap (via a library like Leaflet.js or similar for minimal weight).
- Responsive Design: Ensure the map container adjusts its size correctly on mobile and desktop viewports, avoiding overflow issues.
Performance Requirements (Astro Implementation):
- Lazy Hydration: The map component must be rendered as an Astro island using client:visible. It should only initialize the map library (Leaflet/OSM) once the user scrolls into the location section to keep the initial bundle size minimal.
- Lightweight approach: Prefer native JS or lightweight wrappers to avoid heavy dependencies.
- Accessibility: Ensure the map has appropriate aria-labels or alt-text for screen readers, as maps can be challenging for accessibility.
We need to add a location component that displays the venue of the event using OpenStreetMap (OSM).
Requirements:
Performance Requirements (Astro Implementation):