| import { useEffect } from "react"; |
| import { Switch, Route, Router as WouterRouter } from "wouter"; |
| import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; |
| import { Toaster } from "@/components/ui/toaster"; |
| import { TooltipProvider } from "@/components/ui/tooltip"; |
| import NotFound from "@/pages/not-found"; |
| import { Home } from "@/pages/Home"; |
| import { History } from "@/pages/History"; |
| import { VideoPage } from "@/pages/Video"; |
| import { ApiKeys } from "@/pages/ApiKeys"; |
| import { Admin } from "@/pages/Admin"; |
| import { Navbar } from "@/components/layout/Navbar"; |
| import { SetupWizard } from "@/components/SetupWizard"; |
| import { LanguageProvider } from "@/contexts/LanguageContext"; |
| import { AuthProvider } from "@/contexts/AuthContext"; |
|
|
| const queryClient = new QueryClient(); |
| const basePath = import.meta.env.BASE_URL.replace(/\/$/, ""); |
|
|
| function Router() { |
| return ( |
| <div className="min-h-screen bg-background flex flex-col font-sans text-foreground"> |
| <Navbar /> |
| <main className="flex-1"> |
| <Switch> |
| <Route path="/" component={Home} /> |
| <Route path="/history" component={History} /> |
| <Route path="/video" component={VideoPage} /> |
| <Route path="/api-keys" component={ApiKeys} /> |
| <Route path="/admin" component={Admin} /> |
| <Route component={NotFound} /> |
| </Switch> |
| </main> |
| <SetupWizard /> |
| </div> |
| ); |
| } |
|
|
| function App() { |
| useEffect(() => { |
| document.documentElement.classList.add("dark"); |
| }, []); |
|
|
| return ( |
| <LanguageProvider> |
| <AuthProvider> |
| <QueryClientProvider client={queryClient}> |
| <TooltipProvider> |
| <WouterRouter base={basePath}> |
| <Router /> |
| </WouterRouter> |
| <Toaster /> |
| </TooltipProvider> |
| </QueryClientProvider> |
| </AuthProvider> |
| </LanguageProvider> |
| ); |
| } |
|
|
| export default App; |
|
|