kv-tube/frontend/app/components/MobileNav.tsx
Khoa Vo 70266893dd feat: add watch page controls and custom KV-Tube branding
- Add fullscreen, loop, and wide mode toggles to watch page
- Add custom SVG icon components for consistent branding
- Update Header, Sidebar, and MobileNav with custom icons
- Add KV-Tube logo component with play button
- Create PWA icon SVGs for favicon and app icons
2026-05-14 10:59:21 +07:00

50 lines
1.8 KiB
TypeScript

'use client';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import { HomeIcon, SubscriptionsIcon, LibraryIcon } from '../icons';
export default function MobileNav() {
const pathname = usePathname();
const navItems = [
{ icon: <HomeIcon size={24} />, label: 'Home', path: '/' },
{ icon: <SubscriptionsIcon size={24} />, label: 'Sub', path: '/feed/subscriptions' },
{ icon: <LibraryIcon size={24} />, label: 'You', path: '/feed/library' },
];
return (
<nav className="mobile-nav">
{navItems.map((item) => {
const isActive = pathname === item.path;
return (
<Link
key={item.label}
href={item.path}
style={{
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
flex: 1,
gap: '2px',
color: isActive ? 'var(--yt-text-primary)' : 'var(--yt-text-secondary)',
textDecoration: 'none',
transition: 'var(--yt-transition)'
}}
>
<div style={{ color: isActive ? 'var(--yt-text-primary)' : 'inherit' }}>
{item.icon}
</div>
<span style={{
fontSize: '10px',
fontWeight: isActive ? '500' : '400',
}}>
{item.label}
</span>
</Link>
);
})}
</nav>
);
}