46 lines
1.7 KiB
TypeScript

import { useAdminAuth } from '@_context/AdminAuthContext';
import React from 'react';
import { Link, useNavigate } from 'react-router-dom';
import '@_css/navbar.css';
const AdminNavbar: React.FC = () => {
const { isAdmin, name, type, logout } = useAdminAuth();
const navigate = useNavigate();
const handleLogout = async (e: React.MouseEvent) => {
e.preventDefault();
try {
await logout();
navigate('/');
} catch (error) {
console.error("Logout failed", error);
}
};
return (
<nav className="navbar-container">
<div className="nav-links">
<Link className="nav-link" to="/admin"></Link>
{type === 'HQ' && <Link className="nav-link" to="/admin/theme"></Link>}
{type === 'HQ' && <Link className="nav-link" to="/admin/store"></Link>}
<Link className="nav-link" to="/admin/schedule"></Link>
</div>
<div className="nav-actions">
{!isAdmin ? (
<button className="btn btn-primary" onClick={() => navigate('/admin/login')}>Login</button>
) : (
<div className="profile-info">
<img className="profile-image" src="/image/default-profile.png" alt="Profile" />
<span>{name || 'Profile'}</span>
<div className="dropdown-menu">
<a className="dropdown-item" href="#" onClick={handleLogout}>Logout</a>
</div>
</div>
)}
</div>
</nav>
);
};
export default AdminNavbar;