merge fix v1.0.8.1 Browser lädt ständig die Seite neu wenn keine Linien existieren

This commit is contained in:
ISA
2025-02-12 14:51:17 +01:00
parent 72c57b3f88
commit 6f1df8db94
69 changed files with 1038 additions and 4298 deletions

View File

@@ -1,19 +1,47 @@
// hooks/usePoiTypData.js
import { useState, useEffect } from "react";
import { useState, useEffect, useRef } from "react";
import { toast } from "react-toastify"; // Toast für Warnungen importieren
const usePoiTypData = (url) => {
const [poiTypData, setPoiTypData] = useState([]);
const [isPoiTypLoaded, setIsPoiTypLoaded] = useState(false);
const retryCountRef = useRef(0);
const maxRetries = 2;
useEffect(() => {
const fetchPoiTypData = async () => {
try {
const response = await fetch(url);
const data = await response.json();
if (!Array.isArray(data)) {
console.warn(`Unerwartetes Format: ${JSON.stringify(data)}`);
if (data.warning) {
toast.warn(data.warning, { position: "top-center", autoClose: 5000 });
setPoiTypData([]); // Leeres Array setzen
setIsPoiTypLoaded(true);
return;
}
throw new Error("Daten sind kein Array");
}
// Erfolgreich geladen, also Reset des Retry-Zählers
setPoiTypData(data);
setIsPoiTypLoaded(true);
retryCountRef.current = 0;
} catch (error) {
console.error("Fehler beim Abrufen der poiTyp-Daten:", error);
console.error("Fehler beim Abrufen der poiTyp-Daten in usePoiTypData.js :", error);
if (retryCountRef.current < maxRetries) {
retryCountRef.current++;
console.log(`Neuer Versuch (${retryCountRef.current}/${maxRetries}) in 5 Sekunden...`);
setTimeout(fetchPoiTypData, 5000);
} else {
console.error("Maximale Anzahl an Fehlversuchen erreicht. Stoppe weitere Abrufe.");
setIsPoiTypLoaded(true);
}
}
};