Spaces:
Sleeping
Sleeping
CarouselForge Developer
feat: Phase 15 complete β mobile responsiveness, monitoring, Telegram polish, UAT
d0ded63 | 'use client'; | |
| import Link from 'next/link'; | |
| import { usePathname } from 'next/navigation'; | |
| interface NavItem { | |
| href: string; | |
| label: string; | |
| icon: string; | |
| } | |
| const NAV_ITEMS: NavItem[] = [ | |
| { href: '/', label: 'Dashboard', icon: 'β‘' }, | |
| { href: '/create', label: 'Create', icon: 'β¨' }, | |
| { href: '/schedule', label: 'Schedule', icon: 'π ' }, | |
| { href: '/analytics', label: 'Analytics', icon: 'π' }, | |
| { href: '/settings', label: 'Settings', icon: 'βοΈ' }, | |
| ]; | |
| export default function MobileNavigation(): React.ReactElement { | |
| const pathname = usePathname(); | |
| return ( | |
| <nav className="fixed bottom-0 left-0 right-0 bg-gray-900 border-t border-gray-700"> | |
| <div className="flex justify-around"> | |
| {NAV_ITEMS.map((item) => { | |
| const isActive = pathname === item.href; | |
| return ( | |
| <Link | |
| key={item.href} | |
| href={item.href} | |
| className={`flex-1 flex flex-col items-center gap-1 px-3 py-2 text-xs font-medium transition-colors ${ | |
| isActive | |
| ? 'bg-blue-600 text-white' | |
| : 'text-gray-300 hover:bg-gray-800 hover:text-white' | |
| }`} | |
| > | |
| <span className="text-lg">{item.icon}</span> | |
| <span>{item.label}</span> | |
| </Link> | |
| ); | |
| })} | |
| </div> | |
| </nav> | |
| ); | |
| } | |