import { useEffect, useState } from "react";
import { MapContainer, TileLayer, Marker, Popup } from 'react-leaflet';
import 'leaflet/dist/leaflet.css';
import Chart from 'chart.js/auto';
function App() {
const [data, setData] = useState({
geoData: [{ latitude: 45.4, longitude: -71.9, name: "Position 1" }], // Sherbrooke, Québec par défaut
statsData: { labels: [], datasets: [] },
alerts: []
});
useEffect(() => {
// Simulation de données en temps réel (à remplacer par une connexion réelle)
const interval = setInterval(() => {
setData(prevData => ({
...prevData,
geoData: prevData.geoData.map(point => ({
...point,
latitude: point.latitude + (Math.random() - 0.5) * 0.1, // Mouvement aléatoire sur la carte
longitude: point.longitude + (Math.random() - 0.5) * 0.1
})),
statsData: {
labels: ["Red", "Blue", "Green"],
datasets: [{
label: 'Dataset 1',
data: [Math.random() * 100, Math.random() * 100, Math.random() * 100],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(75, 192, 192, 0.2)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(75, 192, 192, 1)'
],
borderWidth: 1
}]
},
alerts: [...prevData.alerts, `Alerte ${Math.floor(Math.random() * 100)}`]
}));
}, 2000); // Mettre à jour les données toutes les 2 secondes
return () => clearInterval(interval);
}, []);
function updateMap(geoData) {
return (