ridevision / Navbar.tsx
lattmamb's picture
Upload 32 files
3328075 verified
import { useState } from 'react';
import { Link, useLocation } from 'react-router-dom';
import { Menu, X } from 'lucide-react';
const Navbar = () => {
const [isMenuOpen, setIsMenuOpen] = useState(false);
const location = useLocation();
const toggleMenu = () => {
setIsMenuOpen(!isMenuOpen);
};
const navLinks = [
{ name: 'Home', path: '/' },
{ name: 'Vehicles', path: '/vehicles' },
{ name: 'Plans', path: '/pricing' },
{ name: 'Locations', path: '/locations' },
{ name: 'About', path: '/about' },
];
return (
<header className="bg-[#0a0a0a]/80 backdrop-blur-md sticky top-0 z-50 border-b border-gray-800">
<div className="container mx-auto px-4 md:px-6 py-4">
<div className="flex items-center justify-between">
<Link to="/" className="flex items-center space-x-2">
<span className="text-blue-500 text-2xl font-bold">Unity Fleet</span>
</Link>
{/* Desktop Navigation */}
<nav className="hidden md:flex items-center space-x-10">
{navLinks.map((link) => (
<Link
key={link.path}
to={link.path}
className={`text-sm font-medium transition-colors hover:text-blue-500 ${
location.pathname === link.path ? 'text-blue-500' : 'text-gray-300'
}`}
>
{link.name}
</Link>
))}
</nav>
<div className="hidden md:flex items-center space-x-4">
<Link
to="/dashboard"
className="bg-blue-600 hover:bg-blue-700 px-4 py-2 rounded-md text-white text-sm font-medium transition-colors"
>
Dashboard
</Link>
</div>
{/* Mobile Menu Button */}
<button
onClick={toggleMenu}
className="md:hidden text-gray-300 hover:text-white"
aria-label="Toggle Menu"
>
{isMenuOpen ? <X size={24} /> : <Menu size={24} />}
</button>
</div>
</div>
{/* Mobile Navigation */}
{isMenuOpen && (
<div className="md:hidden bg-[#0a0a0a] border-t border-gray-800">
<div className="container mx-auto px-4 py-4">
<nav className="flex flex-col space-y-4">
{navLinks.map((link) => (
<Link
key={link.path}
to={link.path}
className={`text-sm font-medium transition-colors hover:text-blue-500 ${
location.pathname === link.path ? 'text-blue-500' : 'text-gray-300'
}`}
onClick={() => setIsMenuOpen(false)}
>
{link.name}
</Link>
))}
<Link
to="/dashboard"
className="bg-blue-600 hover:bg-blue-700 px-4 py-2 rounded-md text-white text-sm font-medium transition-colors text-center"
onClick={() => setIsMenuOpen(false)}
>
Dashboard
</Link>
</nav>
</div>
</div>
)}
</header>
);
};
export default Navbar;