import { Toaster } from "@/components/ui/toaster"; | |
import { Toaster as Sonner } from "@/components/ui/sonner"; | |
import { TooltipProvider } from "@/components/ui/tooltip"; | |
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; | |
import { BrowserRouter, Routes, Route } from "react-router-dom"; | |
import { Provider } from "react-redux"; | |
import { PersistGate } from "redux-persist/integration/react"; | |
import { store, persistor } from "./redux/store"; | |
import Index from "./pages/Index"; | |
import NotFound from "./pages/NotFound"; | |
import Landing from "./pages/Landing"; | |
import FetchData from "./hooks/FetchData"; | |
const queryClient = new QueryClient(); | |
const App = () => ( | |
<Provider store={store}> | |
<PersistGate loading={null} persistor={persistor}> | |
<QueryClientProvider client={queryClient}> | |
<TooltipProvider> | |
<Toaster /> | |
<Sonner /> | |
<FetchData /> | |
<BrowserRouter> | |
<Routes> | |
<Route path="/" element={<Landing />} /> | |
<Route path="/chat" element={<Index />} /> | |
<Route path="/chat/:activeChat" element={<Index />} /> | |
<Route path="*" element={<NotFound />} /> | |
</Routes> | |
</BrowserRouter> | |
</TooltipProvider> | |
</QueryClientProvider> | |
</PersistGate> | |
</Provider> | |
); | |
export default App; | |