import { useState } from 'react' import { useThemeStore } from '../stores/themeStore' import { SunIcon, MoonIcon } from './icons' import { useAuthStore } from '../stores/authStore' import { authApi } from '../services/api' import { usePermissions } from '../hooks/usePermissions' import WindowControls from './WindowControls' import OrganizationChart from './OrganizationChart' import { Building2 } from 'lucide-react' export default function Header() { const { isDarkMode, toggleTheme } = useThemeStore() const { user, isAuthenticated, login, logout } = useAuthStore() const { canAccessAdminPanel } = usePermissions() const [showLogin, setShowLogin] = useState(false) const [loginForm, setLoginForm] = useState({ username: '', password: '' }) const [loginError, setLoginError] = useState('') const [loginLoading, setLoginLoading] = useState(false) const [showOrganigramm, setShowOrganigramm] = useState(false) const handleLogin = async (e: React.FormEvent) => { e.preventDefault() setLoginError('') setLoginLoading(true) try { const response = await authApi.login(loginForm.username, loginForm.password) login(response.user, response.token) localStorage.setItem('token', response.token) setShowLogin(false) setLoginForm({ username: '', password: '' }) } catch (error: any) { setLoginError(error.response?.data?.message || 'Login fehlgeschlagen') } finally { setLoginLoading(false) } } const handleLogout = () => { logout() localStorage.removeItem('token') } return (

SkillMate

{/* Login/Logout Section */}
{!isAuthenticated ? (
{/* Login Dropdown */} {showLogin && (
setLoginForm(prev => ({ ...prev, username: e.target.value }))} className="input-field w-full text-sm" required />
setLoginForm(prev => ({ ...prev, password: e.target.value }))} className="input-field w-full text-sm" required />
{loginError && (

{loginError}

)}
)}
) : (
{user?.username}
{user?.username.charAt(0).toUpperCase()}
{canAccessAdminPanel() && ( Admin )}
)}
{/* Theme Toggle Slider - moved to the right */}
{/* Organization Chart Modal */} {showOrganigramm && ( setShowOrganigramm(false)} /> )}
) }