31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
// components/main/analogeEingaenge/hooks/useFetchAnalogeEingaenge.ts
|
|
import { useEffect } from "react";
|
|
import { useAppDispatch } from "../../../../redux/store"; // ✅ Typisierte Dispatch-Funktion verwenden
|
|
import {
|
|
loadFromWindow,
|
|
setAnalogeEingaenge,
|
|
} from "../../../../redux/slices/analogeEingaengeSlice";
|
|
|
|
export const useFetchAnalogeEingaenge = () => {
|
|
const dispatch = useAppDispatch(); // ✅ Verwende typisierten Dispatch
|
|
|
|
useEffect(() => {
|
|
dispatch(loadFromWindow()); // Initial Mock-Daten aus `window` laden
|
|
|
|
const interval = setInterval(async () => {
|
|
try {
|
|
dispatch(loadFromWindow()); // 🔄 Mock-Daten regelmäßig neu laden
|
|
|
|
const response = await fetch("/api/get-embedded-data");
|
|
if (!response.ok) throw new Error("Fehler beim Abrufen der Daten");
|
|
const data = await response.json();
|
|
dispatch(setAnalogeEingaenge(data)); // ✅ API-Daten in Redux speichern
|
|
} catch (error) {
|
|
console.error("Fehler beim Abruf der Sensordaten:", error);
|
|
}
|
|
}, 5000); // Alle 5 Sekunden neue Daten abrufen
|
|
|
|
return () => clearInterval(interval);
|
|
}, [dispatch]);
|
|
};
|