"use client"; import { useState } from "react"; import { Map, MapClusterLayer, MapPopup, MapControls } from "@/registry/map"; interface EarthquakeProperties { mag: number; place: string; tsunami: number; } export default function ClusterExample() { const [selectedPoint, setSelectedPoint] = useState<{ coordinates: [number, number]; properties: EarthquakeProperties; } | null>(null); return (
data="https://maplibre.org/maplibre-gl-js/docs/assets/earthquakes.geojson" clusterRadius={50} clusterMaxZoom={14} clusterColors={["#1d8cf8", "#6d5dfc", "#e23670"]} pointColor="#1d8cf8" onPointClick={(feature, coordinates) => { setSelectedPoint({ coordinates, properties: feature.properties, }); }} /> {selectedPoint && ( setSelectedPoint(null)} closeOnClick={false} focusAfterOpen={false} closeButton >

Magnitude: {selectedPoint.properties.mag}

Tsunami:{" "} {selectedPoint.properties?.tsunami === 1 ? "Yes" : "No"}

)}
); }