mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-01-15 13:43:39 +01:00
53 lines
1.6 KiB
TypeScript
53 lines
1.6 KiB
TypeScript
import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister';
|
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
import { persistQueryClient } from '@tanstack/react-query-persist-client';
|
|
import { MotionConfig } from 'framer-motion';
|
|
import { Suspense } from 'react';
|
|
import { DndProvider } from 'react-dnd';
|
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
import { HelmetProvider } from 'react-helmet-async';
|
|
import { AppRouter } from './AppRouter';
|
|
import { DialogProvider } from './DialogContext';
|
|
|
|
const queryClient = new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
cacheTime: 1000 * 60 * 60 * 24, // 24 hours
|
|
networkMode: 'offlineFirst',
|
|
|
|
// It's a desktop app, so this isn't necessary
|
|
refetchOnWindowFocus: false,
|
|
},
|
|
},
|
|
});
|
|
|
|
const localStoragePersister = createSyncStoragePersister({
|
|
storage: window.localStorage,
|
|
throttleTime: 1000, // 1 second
|
|
});
|
|
|
|
persistQueryClient({
|
|
queryClient,
|
|
persister: localStoragePersister,
|
|
maxAge: 1000 * 60 * 60 * 24, // 24 hours
|
|
});
|
|
|
|
export function App() {
|
|
return (
|
|
<QueryClientProvider client={queryClient}>
|
|
<MotionConfig transition={{ duration: 0.1 }}>
|
|
<HelmetProvider>
|
|
<DndProvider backend={HTML5Backend}>
|
|
<DialogProvider>
|
|
<Suspense>
|
|
<AppRouter />
|
|
{/*<ReactQueryDevtools initialIsOpen={false} />*/}
|
|
</Suspense>
|
|
</DialogProvider>
|
|
</DndProvider>
|
|
</HelmetProvider>
|
|
</MotionConfig>
|
|
</QueryClientProvider>
|
|
);
|
|
}
|