39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
// components/mainComponent/hooks/useAutoRefreshLocationDevices.js
|
|
/*
|
|
Das ist erstmal nur so da, falls es gebraucht wird
|
|
Diese datei ist zum automatischen aktualisieren der LocationDevices gedacht
|
|
jeder 20 Sekunden wird die Funktion fetchLocationDevicesFromDB() aufgerufen
|
|
Daten werden dann in der Redux State gespeichert
|
|
*/
|
|
|
|
import { useEffect } from "react";
|
|
import { useDispatch } from "react-redux";
|
|
import { fetchLocationDevicesFromDB } from "../../../../redux/slices/db/locationDevicesFromDBSlice";
|
|
|
|
export const useAutoRefreshLocationDevices = (interval = 20000) => {
|
|
// alle 20 Sekunden
|
|
const dispatch = useDispatch();
|
|
|
|
useEffect(() => {
|
|
const fetchData = () => {
|
|
dispatch(fetchLocationDevicesFromDB());
|
|
};
|
|
|
|
fetchData(); // Sofort beim Start holen
|
|
|
|
const intervalId = setInterval(fetchData, interval);
|
|
|
|
return () => clearInterval(intervalId); // Cleanup beim Unmount
|
|
}, [dispatch, interval]);
|
|
};
|
|
|
|
/*
|
|
In MapComponent.js einbinden
|
|
import { useAutoRefreshLocationDevices } from "./hooks/useAutoRefreshLocationDevices";
|
|
|
|
const MapComponent = () => {
|
|
useAutoRefreshLocationDevices();
|
|
|
|
|
|
*/
|