"use client"; // components/header.jsx import React, { useEffect, useState } from "react"; import Image from "next/image"; import "bootstrap-icons/font/bootstrap-icons.css"; import SettingsModal from "./modales/SettingsModal"; //import { getFromIndexedDB } from "../utils/indexedDB"; function Header() { const [stationsname, setStationsname] = useState("Lädt..."); const [cplStatus, setCplStatus] = useState("Lädt..."); const [showSettingsModal, setShowSettingsModal] = useState(false); const handleSettingsClick = () => setShowSettingsModal(true); const handleCloseSettingsModal = () => setShowSettingsModal(false); const handleLogout = () => (window.location.href = "/offline.html"); //------------------------------------------------------------------ //--------- Direkte Implementierung von `getFromIndexedDB` , um Importprobleme zu vermeiden in Produktionsumgebung ----- async function getFromIndexedDB(key) { return new Promise((resolve, reject) => { const request = indexedDB.open("CPLDatabase", 1); request.onsuccess = () => { const db = request.result; const transaction = db.transaction("cplVariables", "readonly"); const store = transaction.objectStore("cplVariables"); const getRequest = store.get(key); getRequest.onsuccess = () => resolve(getRequest.result); getRequest.onerror = () => reject(getRequest.error); }; request.onerror = () => reject(request.error); }); } //------------------------------------------------------------------ useEffect(() => { const loadData = async () => { try { //console.log("Lade Daten aus IndexedDB..."); const deviceName = await getFromIndexedDB("deviceName"); //console.log("DeviceName geladen:", deviceName); // Sollte den geladenen Wert zeigen const hardwareVersion = await getFromIndexedDB("kueVersion"); //console.log("HardwareVersion geladen:", hardwareVersion); // Sollte den geladenen Wert zeigen setStationsname(deviceName || "Unbekannt"); setCplStatus(hardwareVersion || "Unbekannt"); } catch (error) { console.error("Fehler beim Laden der Daten aus IndexedDB:", error); } }; loadData(); const interval = setInterval(() => { loadData(); }, 5000); return () => clearInterval(interval); }, []); //------------------------------------------------------------------ return (
Logo

Stationsname

{stationsname}

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