import { Head } from 'fresh/runtime.ts'; import { OptionalApp, User } from '/lib/types.ts'; interface Data { route: string; user?: User; enabledApps: OptionalApp[]; } interface MenuItem { url: string; label: string; } export default function Header({ route, user, enabledApps }: Data) { const activeClass = 'bg-slate-800 text-white rounded-md px-3 py-2 text-sm font-medium'; const defaultClass = 'text-slate-300 hover:bg-slate-700 hover:text-white rounded-md px-3 py-2 text-sm font-medium'; const mobileActiveClass = 'bg-slate-800 text-white block rounded-md px-3 py-2 text-base font-medium'; const mobileDefaultClass = 'text-slate-300 hover:bg-slate-700 hover:text-white block rounded-md px-3 py-2 text-base font-medium'; const iconWidthAndHeightInPixels = 20; const potentialMenuItems: (MenuItem | null)[] = [ { url: '/dashboard', label: 'Dashboard', }, enabledApps.includes('news') ? { url: '/news', label: 'News', } : null, { url: '/files', label: 'Files', }, enabledApps.includes('notes') ? { url: '/notes', label: 'Notes', } : null, enabledApps.includes('photos') ? { url: '/photos', label: 'Photos', } : null, enabledApps.includes('expenses') ? { url: '/expenses', label: 'Expenses', } : null, ]; const menuItems = potentialMenuItems.filter(Boolean) as MenuItem[]; if (user) { const activeMenu = menuItems.find((menu) => route.startsWith(menu.url)); let pageLabel = activeMenu?.label || '404 - Page not found'; if (route.startsWith('/news/feeds')) { pageLabel = 'News feeds'; } if (route.startsWith('/settings')) { pageLabel = 'Settings'; } if (route.startsWith('/expenses')) { pageLabel = 'Budgets & Expenses'; } return ( <> {pageLabel} - bewCloud

{pageLabel}

); } return (
the bewCloud logo: a stylized logo
); }