import { TournamentDataProps, Tournament } from "@/types"; import L, { LatLngLiteral } from "leaflet"; import { LayerGroup, LayersControl, Marker, Popup, MarkerProps, } from "react-leaflet"; import { useTranslations } from "next-intl"; const coordinateRandomisation = (lat: number, lng: number): LatLngLiteral => { const randomisation = () => Math.random() * (-0.01 - 0.01) + 0.01; return { lat: lat + randomisation(), lng: lng + randomisation(), }; }; type TournamentMarkerProps = { tournament: Tournament; colour: string; } & Omit; export const TournamentMarker = ({ tournament, colour, ...markerProps }: TournamentMarkerProps) => { const t = useTranslations("Tournaments"); const iconOptions = new L.Icon({ iconUrl: `/images/leaflet/marker-icon-2x-${colour}.png`, shadowUrl: "/images/leaflet/marker-shadow.png", iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -34], shadowSize: [41, 41], }); return (

{tournament.date}
{tournament.tournament}

{t("approx")}
); }; export const createLayerGroups = ( timeControl: string, colour: string, { tournamentData }: TournamentDataProps ) => { const filteredTournaments = tournamentData.filter( (t) => t.time_control === timeControl ); const layerGroup = filteredTournaments.map((tournament) => { return ( ); }); return ( {layerGroup} ); };