"use client"; import React, { useEffect, useState } from "react"; import Image from "next/image"; import "bootstrap-icons/font/bootstrap-icons.css"; function Header() { const [stationsname, setStationsname] = useState("Lädt..."); // Platzhalter const [cplStatus, setCplStatus] = useState("Lädt..."); useEffect(() => { // API-Aufruf, um die Daten vom Server zu holen fetch("http://localhost:3000/api/server?path=main.js", { mode: "cors" }) .then((response) => { if (!response.ok) { throw new Error("Fehler beim Abrufen der Daten"); } return response.text(); // Holen des gesamten Textinhalts }) .then((data) => { console.log("Fetched data:", data); // Logge die empfangenen Daten // Überprüfen, ob das Skript bereits vorhanden ist const scriptId = "server-script"; let script = document.getElementById(scriptId); if (script) { // Wenn das Skript bereits vorhanden ist, entfernen wir es document.body.removeChild(script); } // Erstelle und füge das neue Skript hinzu script = document.createElement("script"); script.id = scriptId; script.innerHTML = data; document.body.appendChild(script); // Nach dem Anhängen des Skripts haben wir Zugriff auf die definierten Variablen setTimeout(() => { setStationsname(window.cpl_name || "Unbekannt"); setCplStatus(window.hardware_version || "Unbekannt"); }, 100); // 100ms Verzögerung, um sicherzustellen, dass die Variablen geladen sind. }) .catch((error) => { console.error("Fehler beim Abrufen der Daten:", error); }); }, []); return (
{/* Logo - Vergrößert und verschoben */}
Logo
{/* CPL Status und Stationsname */}
{/* Text immer linksbündig */}

Stationsname

{stationsname}

CPL Status

{cplStatus}
{/* Temperatur und Icons */}
{/* Temperatur und Luftfeuchtigkeit */}

20.5 °C

60%

{/* Toggle Switch light and dark mode */}
{/* Toggle Switch */}
{/* Leer div für flexiblen Abstand */}
{/* User Icon */}
); } export default Header;