// components/Header.jsx "use client"; import React, { useEffect, useState } from "react"; import Image from "next/image"; import "bootstrap-icons/font/bootstrap-icons.css"; import { loadWindowVariables } from "../utils/loadWindowVariables"; // Importiere die Funktion import SettingsModal from "./modales/SettingsModal"; function Header() { const [isClient, setIsClient] = useState(false); const [stationsname, setStationsname] = useState("Lädt..."); // Platzhalter const [cplStatus, setCplStatus] = useState("Lädt..."); const [showSettingsModal, setShowSettingsModal] = useState(false); useEffect(() => { setIsClient(true); }, []); const handleSettingsClick = () => { setShowSettingsModal(true); // Öffne das Modal }; const handleCloseSettingsModal = () => { setShowSettingsModal(false); // Schließe das Modal }; const handleLogout = () => { window.location.href = "/offline.html"; // Öffnet offline.html }; useEffect(() => { if (typeof window !== "undefined") { console.log("Lade Window-Variablen..."); loadWindowVariables() .then(() => { // Überprüfe, ob die erwarteten Variablen verfügbar sind console.log("Window-Variablen geladen:", window); 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) { const files = [ "de.acp", "kueConfig.acp", "kueData.js", "kueDetailTdr.acp", "Start.acp", "System.acp", ]; const environment = process.env.NEXT_PUBLIC_NODE_ENV || "production"; // Fallback auf 'production' files.forEach((file) => { const script = document.createElement("script"); if (environment === "production") { script.src = `/CPL?/CPL/SERVICE/${file}`; // Produktions-Pfad } else { script.src = `/mockData/${file}`; // Entwicklungs-Pfad } script.async = true; script.onload = () => console.log(`${file} wurde erfolgreich geladen.`); script.onerror = (error) => console.error(`Fehler beim Laden von ${file}:`, error); document.head.appendChild(script); }); } }, [isClient]); useEffect(() => { console.log("Environment:", process.env.NEXT_PUBLIC_NODE_ENV); // Logge die Umgebungsvariable }, []); if (!isClient) return null; // Rendere die Komponente nicht, bis sie clientseitig ausgeführt wird return (
Logo
{/* CPL Status und Stationsname */}

Stationsname

{stationsname}

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