mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-06 07:53:54 +00:00
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { QueryClient } from '@tanstack/react-query';
|
|
import axios from 'axios';
|
|
import { MILLIS_PER_MINUTE } from 'ontime-utils';
|
|
|
|
import { isOntimeCloud } from '../externals';
|
|
|
|
export const ontimeQueryClient = new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
gcTime: 10 * MILLIS_PER_MINUTE,
|
|
// staleTime: MILLIS_PER_HOUR, //TODO: when all routes have implemented refetch signal from server, we can the assume that the data is not stale until we get the signal
|
|
networkMode: isOntimeCloud ? 'online' : 'always',
|
|
refetchOnWindowFocus: false,
|
|
retry: (failureCount, error) => {
|
|
if (axios.isCancel(error)) {
|
|
return false;
|
|
}
|
|
return failureCount < 5;
|
|
},
|
|
retryDelay: (attempt) => Math.min(1000 * 2 ** attempt, 5000),
|
|
},
|
|
mutations: {
|
|
/**
|
|
* React Query detects whether the client is online
|
|
* However, web access is not required for the clients when deployed locally
|
|
* - use 'always' for clients that may be online
|
|
* - use 'online' for clients that are connected to the cloud
|
|
*/
|
|
networkMode: isOntimeCloud ? 'online' : 'always',
|
|
retry: 0,
|
|
},
|
|
},
|
|
});
|