"use client"; // components/Header.jsx import React, { useEffect, useState } from "react"; import Image from "next/image"; import "bootstrap-icons/font/bootstrap-icons.css"; import { loadWindowVariables } from "../utils/loadWindowVariables"; import SettingsModal from "./modales/SettingsModal"; function Header() { const [isClient, setIsClient] = useState(false); const [stationsname, setStationsname] = useState("Lädt..."); const [cplStatus, setCplStatus] = useState("Lädt..."); const [showSettingsModal, setShowSettingsModal] = useState(false); // Boolean-Flag, um sicherzustellen, dass der console.log nur einmal ausgeführt wird const [logOnce, setLogOnce] = useState(false); useEffect(() => { setIsClient(true); }, []); const handleSettingsClick = () => { setShowSettingsModal(true); }; const handleCloseSettingsModal = () => { setShowSettingsModal(false); }; const handleLogout = () => { window.location.href = "/offline.html"; }; useEffect(() => { if (typeof window !== "undefined") { console.log("Lade Window-Variablen..."); loadWindowVariables() .then(() => { if (window.ip) { setStationsname(window.deviceName || "Unbekannt"); setCplStatus(window.hardware_version || "Unbekannt"); } else { console.error("window.ip ist nicht verfügbar."); } }) .catch((error) => { console.error("Fehler beim Laden der Variablen:", error); }); } }, [isClient]); useEffect(() => { if (isClient && !logOnce) { const files = [ "de.js", "kueConfig.js", "kueData.js", "kueDetailTdr.js", "Start.js", "System.js", ]; const environment = process.env.NEXT_PUBLIC_NODE_ENV || "production"; let filesLoadedCount = 0; // Zähle die Anzahl der erfolgreich geladenen Dateien files.forEach((file) => { const script = document.createElement("script"); if (environment === "production") { script.src = `/CPL?/CPL/SERVICE/${file}`; } else { script.src = `/mockData/SERVICE/${file}`; } script.async = true; script.onload = () => { console.log(`${file} wurde erfolgreich geladen.`); filesLoadedCount++; // Wenn alle Dateien geladen sind und der logOnce noch false ist, führe den log aus if (filesLoadedCount === files.length && !logOnce) { console.log("Systemvariablen geladen:", { last20Messages: window.last20Messages, deviceName: window.deviceName, mac1: window.mac1, mac2: window.mac2, ip: window.ip, subnet: window.subnet, gateway: window.gateway, datetime: window.datetime, de: window.de, counter: window.counter, flutter: window.flutter, kueOnline: window.kueOnline, kueID: window.kueID, kueValid: window.kueValid, kueAlarm1: window.kueAlarm1, kueAlarm2: window.kueAlarm2, kueRes: window.kueRes, kueCableBreak: window.kueCableBreak, kueGroundFault: window.kueGroundFault, kueLimit1: window.kueLimit1, kueLimit2Low: window.kueLimit2Low, kueLimit2High: window.kueLimit2High, kueDelay1: window.kueDelay1, kueLoopInterval: window.kueLoopInterval, kueVersion: window.kueVersion, tdrAtten: window.tdrAtten, tdrPulse: window.tdrPulse, tdrSpeed: window.tdrSpeed, tdrAmp: window.tdrAmp, tdrTrigger: window.tdrTrigger, tdrLocation: window.tdrLocation, tdrActive: window.tdrActive, kueOverflow: window.kueOverflow, kue100V: window.kue100V, kueResidence: window.kueResidence, tdrLastMeasurement: window.tdrLastMeasurement, kueBooting: window.kueBooting, appVersion: window.appVersion, }); setLogOnce(true); // Setze das Flag auf true, damit der log nicht erneut ausgeführt wird } }; script.onerror = (error) => console.error(`Fehler beim Laden von ${file}:`, error); document.head.appendChild(script); }); } }, [isClient, logOnce]); useEffect(() => { console.log("Environment:", process.env.NEXT_PUBLIC_NODE_ENV); }, []); if (!isClient) return null; return (
Logo

Stationsname

{stationsname}

{showSettingsModal && ( )}
); } export default Header;