"use client"; // components/Header.jsx import React, { useState, useEffect } from "react"; import Image from "next/image"; import { useRouter } from "next/router"; import "bootstrap-icons/font/bootstrap-icons.css"; import SettingsModal from "./modales/settingsModal/SettingsModal"; function Header() { const router = useRouter(); const [showSettingsModal, setShowSettingsModal] = useState(false); const [isAdminLoggedIn, setIsAdminLoggedIn] = useState(false); // Lokaler Zustand const deviceName = "Station XY"; // Dummy-Daten, da Redux entfernt wurde const handleSettingsClick = () => setShowSettingsModal(true); const handleCloseSettingsModal = () => setShowSettingsModal(false); const handleLogout = () => { sessionStorage.removeItem("token"); // Token entfernen beim Abmelden setIsAdminLoggedIn(false); // Admin-Status zurücksetzen window.location.href = "/offline.html"; }; // Funktion, um den Token-Status zu prüfen useEffect(() => { const token = sessionStorage.getItem("token"); if (token) { try { const { exp } = JSON.parse(atob(token)); if (Date.now() < exp) { setIsAdminLoggedIn(true); // Admin eingeloggt } else { sessionStorage.removeItem("token"); // Entferne abgelaufenen Token setIsAdminLoggedIn(false); } } catch (error) { console.error("Fehler beim Verarbeiten des Tokens:", error); setIsAdminLoggedIn(false); } } }, []); return (
Logo

Stationsname

{deviceName}

{/* Warnhinweis, wenn der Admin angemeldet ist */} {isAdminLoggedIn && (
Admin-Modus aktiv
)} {showSettingsModal && ( )}
); } export default Header;