mirror of
https://github.com/piyush-eon/tanstack-query-weather-app.git
synced 2025-11-24 05:11:19 +00:00
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
|
|
import { Toaster } from "./components/ui/sonner";
|
|
import { WeatherDashboard } from "./pages/weather-dashboard";
|
|
import { Layout } from "./components/layout";
|
|
import { ThemeProvider } from "./context/theme-provider";
|
|
import { BrowserRouter, Route, Routes } from "react-router-dom";
|
|
import { CityPage } from "./pages/city-page";
|
|
|
|
const queryClient = new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
staleTime: 5 * 60 * 1000, // 5 minutes
|
|
gcTime: 10 * 60 * 1000, // 10 minutes
|
|
retry: false,
|
|
refetchOnWindowFocus: false,
|
|
},
|
|
},
|
|
});
|
|
|
|
function App() {
|
|
return (
|
|
<QueryClientProvider client={queryClient}>
|
|
<BrowserRouter>
|
|
<ThemeProvider defaultTheme="dark">
|
|
<Layout>
|
|
<Routes>
|
|
<Route path="/" element={<WeatherDashboard />} />
|
|
<Route path="/city/:cityName" element={<CityPage />} />
|
|
</Routes>
|
|
</Layout>
|
|
<Toaster richColors />
|
|
</ThemeProvider>
|
|
</BrowserRouter>
|
|
<ReactQueryDevtools initialIsOpen={false} />
|
|
</QueryClientProvider>
|
|
);
|
|
}
|
|
|
|
export default App;
|