import { NavLink, Outlet, useNavigate } from 'react-router-dom' import { LayoutGrid, BarChart3, Link, Plus, Search } from 'lucide-react' import { useState, useEffect, useCallback } from 'react' import SearchModal from './SearchModal.tsx' const navItems = [ { to: '/board', label: 'Board', icon: LayoutGrid }, { to: '/analytics', label: 'Analytics', icon: BarChart3 }, { to: '/mappings', label: 'Mappings', icon: Link }, ] export default function Layout() { const navigate = useNavigate() const [searchOpen, setSearchOpen] = useState(false) const [showCreateHint, setShowCreateHint] = useState(false) // Global Cmd+K handler const handleGlobalKeyDown = useCallback((e: KeyboardEvent) => { if ((e.metaKey || e.ctrlKey) && e.key === 'k') { e.preventDefault() setSearchOpen(true) } }, []) useEffect(() => { document.addEventListener('keydown', handleGlobalKeyDown) return () => document.removeEventListener('keydown', handleGlobalKeyDown) }, [handleGlobalKeyDown]) return (
{/* Top navigation bar */}
{/* Logo */}
T
TaskTracker
{/* Nav tabs */} {/* Spacer */}
{/* Search trigger */} {/* New task button */}
{/* Content */}
{/* Search modal */} {searchOpen && ( { setSearchOpen(false) navigate(`/board?task=${taskId}`) }} onClose={() => setSearchOpen(false)} /> )}
) }