'use client'; import { Search, Bell, Plus, Menu } from 'lucide-react'; import { usePathname } from 'next/navigation'; import { Button } from '@/components/ui/button'; import { useSidebarStore } from '@/lib/stores/use-sidebar-store'; import { useCreateDialogStore } from '@/lib/stores/use-create-dialog-store'; import { CommandPalette } from '@/components/command-palette'; import { NotificationBell } from '@/components/notifications/notification-bell'; export function TopBar() { const pathname = usePathname(); const { setMobileOpen } = useSidebarStore(); const openCreate = useCreateDialogStore((s) => s.openCreate); function handleCreate() { if (pathname.startsWith('/projects')) openCreate('project'); else if (pathname.startsWith('/habits')) openCreate('habit'); else if (pathname.startsWith('/tasks')) openCreate('task'); // On other pages (e.g. /settings) the topbar's "Quick add" button // visually overlaps form action buttons (e.g. Domain "Add") because // both are anchored top-right. Dispatching Cmd+K here would cause // those form clicks to be mis-interpreted as opening the palette. // So we no-op on those pages — the form buttons handle their own actions. } const label = pathname.startsWith('/projects') ? 'New project' : pathname.startsWith('/habits') ? 'New habit' : pathname.startsWith('/tasks') ? 'New task' : 'Quick add'; return ( <>
{(pathname.startsWith('/projects') || pathname.startsWith('/habits') || pathname.startsWith('/tasks')) && ( )}
); }