| import { Toaster } from "@/components/ui/sonner"; | |
| import { TooltipProvider } from "@/components/ui/tooltip"; | |
| import NotFound from "@/pages/NotFound"; | |
| import { Route, Switch } from "wouter"; | |
| import ErrorBoundary from "./components/ErrorBoundary"; | |
| import { ThemeProvider } from "./contexts/ThemeContext"; | |
| import { LanguageProvider } from "./contexts/LanguageContext"; | |
| import Home from "./pages/Home"; | |
| import Products from "./pages/Products"; | |
| import Orders from "./pages/Orders"; | |
| function Router() { | |
| // make sure to consider if you need authentication for certain routes | |
| return ( | |
| <Switch> | |
| <Route path={"/"} component={Home} /> | |
| <Route path={"/products"} component={Products} /> | |
| <Route path={"/orders"} component={Orders} /> | |
| <Route path={"/404"} component={NotFound} /> | |
| {/* Final fallback route */} | |
| <Route component={NotFound} /> | |
| </Switch> | |
| ); | |
| } | |
| // NOTE: About Theme | |
| // - First choose a default theme according to your design style (dark or light bg), than change color palette in index.css | |
| // to keep consistent foreground/background color across components | |
| // - If you want to make theme switchable, pass `switchable` ThemeProvider and use `useTheme` hook | |
| function App() { | |
| return ( | |
| <ErrorBoundary> | |
| <ThemeProvider | |
| defaultTheme="dark" | |
| // switchable | |
| > | |
| <LanguageProvider> | |
| <TooltipProvider> | |
| <Toaster /> | |
| <Router /> | |
| </TooltipProvider> | |
| </LanguageProvider> | |
| </ThemeProvider> | |
| </ErrorBoundary> | |
| ); | |
| } | |
| export default App; | |