Presupuestador_web/client/src/App.tsx

47 lines
1.7 KiB
TypeScript
Raw Normal View History

import { AuthProvider, ThemeProvider, UnsavedWarnProvider } from "@/lib/hooks";
2024-06-06 11:05:54 +00:00
import { TooltipProvider } from "@/ui";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
import { Suspense } from "react";
import { ToastContainer } from "react-toastify";
2024-07-11 18:49:06 +00:00
import "react-toastify/dist/ReactToastify.css";
2024-06-06 11:05:54 +00:00
import { Routes } from "./Routes";
import { LoadingOverlay, TailwindIndicator } from "./components";
2024-07-09 16:21:12 +00:00
import { createAxiosAuthActions, createAxiosDataProvider } from "./lib/axios";
import { DataSourceProvider } from "./lib/hooks";
2024-06-06 11:05:54 +00:00
function App() {
const queryClient = new QueryClient({
defaultOptions: {
queries: {
retry: false,
staleTime: 10000, // Specify a staleTime to only fetch when the data is older than a certain amount of time
},
},
});
return (
<QueryClientProvider client={queryClient}>
<DataSourceProvider dataSource={createAxiosDataProvider(import.meta.env.VITE_API_URL)}>
<AuthProvider authActions={createAxiosAuthActions(import.meta.env.VITE_API_URL)}>
<ThemeProvider defaultTheme='light' storageKey='vite-ui-theme'>
<TooltipProvider delayDuration={0}>
<UnsavedWarnProvider>
<Suspense fallback={<LoadingOverlay />}>
<Routes />
2024-07-09 16:21:12 +00:00
<ToastContainer />
</Suspense>
</UnsavedWarnProvider>
2024-06-06 11:05:54 +00:00
</TooltipProvider>
<TailwindIndicator />
<ReactQueryDevtools initialIsOpen={false} />
</ThemeProvider>
</AuthProvider>
</DataSourceProvider>
</QueryClientProvider>
);
}
export default App;