"use client" import Link from "next/link" import { usePathname, useRouter } from "next/navigation" import { Button } from "@/components/ui/button" import { HardDrive, Menu, LogOut } from "lucide-react" import { useState, useEffect } from "react" import { api } from "@/lib/api" export function Header() { const pathname = usePathname() const router = useRouter() const [isMenuOpen, setIsMenuOpen] = useState(false) const [zfsAvailable, setZfsAvailable] = useState(false) useEffect(() => { const checkZfsAvailability = async () => { const status = await api.getSystemStatus() setZfsAvailable(status.zfs_available) } checkZfsAvailability() }, []) const handleLogout = async () => { await api.logout() router.push("/login") } const isActive = (path: string) => pathname === path const navLink = (href: string, label: string, mobile = false) => ( setIsMenuOpen(false) : undefined} > {label} ) return ( {/* Logo */} ZMB Webui {/* Desktop Navigation */} {navLink("/", "Dashboard")} {zfsAvailable && navLink("/zfs", "ZFS")} {navLink("/navigator", "Navigator")} {navLink("/shares", "Shares")} {navLink("/file-sharing", "File Sharing")} {navLink("/identities", "Identities")} {navLink("/logs", "Logs")} {navLink("/services", "Services")} {/* Logout Button */} Logout {/* Mobile Menu Button */} setIsMenuOpen(!isMenuOpen)} > {/* Mobile Navigation */} {isMenuOpen && ( {navLink("/", "Dashboard", true)} {zfsAvailable && navLink("/zfs", "ZFS", true)} {navLink("/navigator", "Navigator", true)} {navLink("/shares", "Shares", true)} {navLink("/file-sharing", "File Sharing", true)} {navLink("/identities", "Identities", true)} {navLink("/logs", "Logs", true)} {navLink("/services", "Services", true)} )} ) }