import { useState } from 'react' import { Layout } from './components/ui/Layout.tsx' import { Tabs } from './components/ui/Tabs.tsx' import { UserPage } from './pages/UserPage.tsx' import { AdminPage } from './pages/AdminPage.tsx' import { AdminStatsPage } from './pages/AdminStatsPage.tsx' import { LoginPage } from './pages/LoginPage.tsx' import { useAuth } from './hooks/useAuth.ts' import { AuthBar } from './components/ui/AuthBar.tsx' import { BrowserRouter, Route, Routes } from 'react-router-dom' import { NotFound } from './pages/NotFound.tsx' type TabValue = 'tickets' | 'admin' | 'stats' function SupportApp() { const [activeTab, setActiveTab] = useState('tickets') const [showLogin, setShowLogin] = useState(false) const { user, authState, logout } = useAuth() const urlError = new URLSearchParams(window.location.search).get('error') if (showLogin || urlError) { return ( { setShowLogin(false) window.history.replaceState({}, '', window.location.pathname) }} /> ) } if (authState === 'pending') { return (

Loading...

) } const tabs: { value: TabValue; label: string }[] = [ { value: 'tickets', label: 'My Tickets' }, { value: 'admin', label: 'Admin' }, { value: 'stats', label: 'Admin Stats' }, ] return ( setShowLogin(true)} onLogout={logout} /> } > {activeTab === 'tickets' && } {activeTab === 'admin' && } {activeTab === 'stats' && } ) } export default function App() { return ( } /> } /> ) }