From d151a3d1dfa568b752c957526c115015852d7300 Mon Sep 17 00:00:00 2001 From: ISA Date: Wed, 30 Oct 2024 07:54:07 +0100 Subject: [PATCH] =?UTF-8?q?deviceName=20in=20Header=20bekommt=20die=20Name?= =?UTF-8?q?=20und=20nicht=20mehr=20l=C3=A4dt..=20oder=20unbekannt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Header.jsx | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/components/Header.jsx b/components/Header.jsx index 64e3897..a645339 100644 --- a/components/Header.jsx +++ b/components/Header.jsx @@ -1,4 +1,3 @@ -// components/Header.jsx "use client"; import React, { useEffect, useState } from "react"; import Image from "next/image"; @@ -10,19 +9,22 @@ function Header() { const [cplStatus, setCplStatus] = useState("Lädt..."); const [showSettingsModal, setShowSettingsModal] = useState(false); - // Flag außerhalb des State-Managements, um die Ausgabe nur einmal zu loggen + // Flag außerhalb der Funktion, um die Werte nur einmal zu setzen let variablesLogged = false; useEffect(() => { - const interval = setInterval(() => { - if (localStorage.getItem("variablesLoaded") === "true") { - // Lade die Werte nur, wenn die Variablen tatsächlich geladen wurden - setStationsname(window.deviceName || "Unbekannt"); - setCplStatus(window.hardware_version || "Unbekannt"); - clearInterval(interval); // Beende das Intervall, sobald die Werte gesetzt sind + const checkVariablesLoaded = async () => { + if (window.deviceName) { + setStationsname(window.deviceName); + } else { + // Falls die Variablen noch nicht geladen sind, erneut prüfen nach 3000 ms + await new Promise((resolve) => setTimeout(resolve, 3000)); + checkVariablesLoaded(); // Erneut aufrufen, wenn noch nicht geladen } - }, 500); // Prüfe das Flag alle 500 ms + }; - return () => clearInterval(interval); + checkVariablesLoaded(); // Startet die erste Überprüfung + + // Kein Cleanup erforderlich, da `setTimeout` nur bei Bedarf ausgeführt wird }, []); const handleSettingsClick = () => setShowSettingsModal(true);