'use client'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { Anchor, BarChart3, Bell, BellRing, Bookmark, Building2, Globe, Home, Receipt, Settings, Shield, ShieldAlert, Ship, } from 'lucide-react'; import { Drawer, DrawerContent, DrawerHeader, DrawerTitle, DrawerClose, } from '@/components/shared/drawer'; import { useUmamiActive } from '@/components/website-analytics/use-website-analytics'; type MoreItem = { label: string; icon: typeof Building2; segment: string; }; // Order: most-likely overflow targets first. Interests is here (rather // than the bottom row) to dodge the Clients-vs-Interests UX confusion; // reps reach the active deals via the Interests tab on a client detail // (or via the new bottom-sheet drawer). Yachts is asset-record traffic // best reached contextually from inside an interest or client. // // Inbox is intentionally absent — the email/threading inbox feature was // deferred (see sidebar.tsx). Re-add this entry once IMAP/SMTP wiring // + Google OAuth review are done. Website analytics is filtered below // when Umami isn't configured for this port. const MORE_ITEMS: MoreItem[] = [ { label: 'Interests', icon: Bookmark, segment: 'interests' }, { label: 'Yachts', icon: Ship, segment: 'yachts' }, { label: 'Companies', icon: Building2, segment: 'companies' }, { label: 'Expenses', icon: Receipt, segment: 'expenses' }, { label: 'Reservations', icon: Anchor, segment: 'berth-reservations' }, // Notifications themselves live on the topbar bell — this entry deep-links // to the notification panel inside user-settings (collapsed in 2026-05-09). { label: 'Notification preferences', icon: BellRing, segment: 'settings#notifications' }, { label: 'Residential', icon: Home, segment: 'residential/clients' }, { label: 'Website analytics', icon: Globe, segment: 'website-analytics' }, { label: 'Alerts', icon: ShieldAlert, segment: 'alerts' }, { label: 'Reports', icon: BarChart3, segment: 'reports' }, { label: 'Reminders', icon: Bell, segment: 'reminders' }, { label: 'Settings', icon: Settings, segment: 'settings' }, { label: 'Admin', icon: Shield, segment: 'admin' }, ]; export function MoreSheet({ open, onOpenChange, }: { open: boolean; onOpenChange: (next: boolean) => void; }) { const pathname = usePathname(); const portSlug = pathname.split('/').filter(Boolean)[0] ?? 'port-nimara'; // Hide "Website analytics" if Umami isn't wired up for this port — the // dedicated tile on the dashboard already does the same. const umami = useUmamiActive('today'); const umamiConfigured = umami.data?.error !== 'umami_not_configured'; const items = MORE_ITEMS.filter( (item) => item.segment !== 'website-analytics' || umamiConfigured, ); return ( More ); }