import { Circle, Polygon, Polyline, Popup, Tooltip } from 'react-leaflet' import { Geocerca } from '@/types' interface GeocercaLayerProps { geocerca: Geocerca editable?: boolean onClick?: () => void } export default function GeocercaLayer({ geocerca, editable = false, onClick, }: GeocercaLayerProps) { const pathOptions = { color: geocerca.color, fillColor: geocerca.color, fillOpacity: 0.2, weight: 2, } const eventHandlers = { click: () => onClick?.(), } // Circle geocerca if (geocerca.tipo === 'circulo' && geocerca.centroLat && geocerca.centroLng && geocerca.radio) { return ( {geocerca.nombre} ) } // Polygon geocerca if (geocerca.tipo === 'poligono' && geocerca.vertices && geocerca.vertices.length > 2) { const positions = geocerca.vertices.map((v) => [v.lat, v.lng] as [number, number]) return ( {geocerca.nombre} ) } // Route geocerca if (geocerca.tipo === 'ruta' && geocerca.vertices && geocerca.vertices.length > 1) { const positions = geocerca.vertices.map((v) => [v.lat, v.lng] as [number, number]) return ( {geocerca.nombre} ) } return null } // Popup content function GeocercaPopup({ geocerca }: { geocerca: Geocerca }) { return (

{geocerca.nombre}

{geocerca.descripcion && (

{geocerca.descripcion}

)}
Tipo: {geocerca.tipo}
Accion: {geocerca.accion}
{geocerca.velocidadMaxima && (
Vel. max: {geocerca.velocidadMaxima} km/h
)} {geocerca.tipo === 'circulo' && geocerca.radio && (
Radio: {geocerca.radio} m
)}
) }