"use client"; import React, { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import { Menu, LogOut, Calendar } from "lucide-react"; import { useAuthStore } from "@/store/authStore"; import api from "@/lib/api"; import toast from "react-hot-toast"; import GlassBadge from "./GlassBadge"; const ROLE_BADGE_VARIANT: Record = { ADMIN: "info", TEACHER: "success", }; interface HeaderProps { onMenuToggle: () => void; } export default function Header({ onMenuToggle }: HeaderProps): React.ReactElement { const router = useRouter(); const { user, logout } = useAuthStore(); const [timeStr, setTimeStr] = useState(""); useEffect(() => { const updateTime = () => { const now = new Date(); setTimeStr( now.toLocaleDateString("en-US", { weekday: "short", month: "short", day: "numeric", hour: "2-digit", minute: "2-digit", }) ); }; updateTime(); const interval = setInterval(updateTime, 60_000); return () => clearInterval(interval); }, []); async function handleLogout(): Promise { try { await api.post("/auth/logout"); } catch { } logout(); toast.success("Logged out successfully"); router.push("/login"); } const roleBadge = ROLE_BADGE_VARIANT[user?.role ?? ""] ?? "success"; return (
{}
{timeStr || "Loading..."}
{}
{user?.role || "—"} {user?.email || "—"}
); }