'use client'; import { Plus, Moon, Sun, LogOut, User, Settings } from 'lucide-react'; import { useRouter } from 'next/navigation'; import { useUIStore } from '@/stores/ui-store'; import { Button } from '@/components/ui/button'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Separator } from '@/components/ui/separator'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { PortSwitcher } from '@/components/layout/port-switcher'; import { Breadcrumbs } from '@/components/layout/breadcrumbs'; import { CommandSearch } from '@/components/search/command-search'; import { NotificationBell } from '@/components/notifications/notification-bell'; import type { Port } from '@/lib/db/schema/ports'; interface TopbarProps { ports: Port[]; } export function Topbar({ ports }: TopbarProps) { const router = useRouter(); const currentPortSlug = useUIStore((s) => s.currentPortSlug); const darkMode = useUIStore((s) => s.darkMode); const toggleDarkMode = useUIStore((s) => s.toggleDarkMode); const base = currentPortSlug ? `/${currentPortSlug}` : ''; function handleToggleDarkMode() { toggleDarkMode(); document.documentElement.classList.toggle('dark'); } return (
{/* Breadcrumbs / page title */}
{/* Actions row */}
{/* Global search — inline with dropdown results */} {/* Port switcher — hidden for single port */} {/* + New dropdown */} Create {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */} router.push(`${base}/clients/new` as any)}> New Client {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */} router.push(`${base}/interests/new` as any)}> New Interest {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */} router.push(`${base}/expenses/new` as any)}> New Expense {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */} router.push(`${base}/reminders/new` as any)}> New Reminder {/* Notification bell — real-time via socket */} {/* User menu */} My Account {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */} router.push(`${base}/settings/profile` as any)}> Profile {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */} router.push(`${base}/settings` as any)}> Settings {darkMode ? ( <> Light Mode ) : ( <> Dark Mode )} router.push('/api/auth/sign-out')} > Sign Out
); }