import { useEffect } from 'react'; import { DashboardTab } from './components/DashboardTab'; import { ClassesTab } from './components/ClassesTab'; import { StudentsTab } from './components/StudentsTab'; import { LearningTab } from './components/LearningTab'; import { NetworkTab } from './components/NetworkTab'; import { AccountsTab } from './components/AccountsTab'; import { ChatWidget } from './components/ChatWidget'; import { StaffChatSocket } from './hooks/useStaffChatSocket'; import { ClassWorkspace } from './components/ClassWorkspace'; import { NavHistoryBar, useRoute } from './components/NavHistoryBar'; import { goBack, navigate, parseRoute, pushNav, TAB_LABELS, type TabId } from './navigation'; import { useAuth } from './auth/AuthContext'; const IconDashboard = () => ( ); const IconClass = () => ( ); const IconStudent = () => ( ); const IconLearning = () => ( ); const IconNetwork = () => ( ); const IconAccounts = () => ( ); function App() { const route = useRoute(); const { staff, logout } = useAuth(); useEffect(() => { const initial = parseRoute(); if (initial.classId) { return; } pushNav({ kind: 'tab', tab: initial.tab, label: TAB_LABELS[initial.tab] }); }, []); const setActiveTab = (tab: string) => { navigate(tab as TabId); }; const handleBackFromClass = () => { goBack(route.tab); }; return ( <>
{route.classId ? ( ( )} /> ) : ( <> {route.tab === 'dashboard' && } {route.tab === 'classes' && } {route.tab === 'students' && } {route.tab === 'learning' && } {route.tab === 'network' && } {route.tab === 'accounts' && } )}
); } export default App;