File size: 1,915 Bytes
5ef6e9d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 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;
|