'use client'; import { Role } from '@/enums/role.enum'; import { User } from '@/interfaces/user.interface'; import { useAuthState } from '@/state/auth-state'; import { useThemeState } from '@/state/theme-state'; import { faMoon, faSun, faUserCircle } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import Link from 'next/link'; import { useEffect, useState } from 'react'; export function Header() { const [theme, setTheme] = useState<'light' | 'dark'>('dark'); const toggleTheme = useThemeState((s) => s.toggleTheme); useEffect(() => { setTheme(useThemeState.getState().theme); useThemeState.subscribe((s) => setTheme(s.theme)); }, []); return (
Ham Reserve
); } function UserHeader() { const [user, setUser] = useState(); const [getUser, logout] = useAuthState((s) => [s.getUser, s.logout]); const [isOpen, setIsOpen] = useState(false); useEffect(() => { getUser().then((u) => setUser(u || undefined)); }, []); return user ? (
{user.roles.includes(Role.Admin) && ( setIsOpen(false)} > Admin panel )}
) : (
Prijava
); }