import { useEffect } from 'hono/jsx' import { navigate } from '../router' import { dashboardTab, isNarrow, setMobileSidebar } from '../state' import { HamburgerButton, HamburgerLine, DashboardContainer, DashboardHeader, DashboardTitle, SettingsGear, Tab, TabBar, TabContent, } from '../styles' import { UnifiedLogs, initUnifiedLogs, scrollLogsToBottom } from './UnifiedLogs' import { Urls } from './Urls' import { Vitals, initVitals } from './Vitals' export function DashboardLanding({ render }: { render: () => void }) { useEffect(() => { initUnifiedLogs() initVitals() if (dashboardTab === 'logs') scrollLogsToBottom() }, []) const narrow = isNarrow || undefined const openSettings = () => { navigate('/settings') } const switchTab = (tab: typeof dashboardTab) => { navigate(tab === 'urls' ? '/' : `/${tab}`) if (tab === 'logs') scrollLogsToBottom() } return ( ⚙️ {isNarrow && ( { setMobileSidebar(true); render() }} title="Show apps" style={{ position: 'absolute', top: 16, left: 16 }} > )} 🐾 Toes switchTab('urls')}>URLs switchTab('logs')}>Logs switchTab('metrics')}>Metrics ) }