mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-09 17:33:55 +00:00
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import { useQuery } from '@tanstack/react-query';
|
|
import { dayInMs } from 'ontime-utils';
|
|
|
|
import { version } from '../../../../../package.json';
|
|
import { isLocalhost } from '../../externals';
|
|
import { APP_VERSION } from '../api/constants';
|
|
import { getLatestVersion, HasUpdate } from '../api/external';
|
|
|
|
const placeholder: HasUpdate & { hasUpdates: boolean } = { url: '', version: '', hasUpdates: false };
|
|
|
|
export default function useAppVersion() {
|
|
const {
|
|
data: fetchData,
|
|
status,
|
|
isFetching,
|
|
isError,
|
|
refetch,
|
|
} = useQuery({
|
|
queryKey: APP_VERSION,
|
|
queryFn: getLatestVersion,
|
|
placeholderData: (previousData, _previousQuery) => previousData,
|
|
refetchOnWindowFocus: false,
|
|
refetchOnReconnect: false,
|
|
retry: false,
|
|
staleTime: dayInMs,
|
|
enabled: isLocalhost,
|
|
});
|
|
|
|
const hasUpdates = fetchData?.version && !fetchData.version.includes(version);
|
|
|
|
const data = fetchData ? { ...fetchData, hasUpdates } : placeholder;
|
|
|
|
return { data, placeholder, status, isFetching, isError, refetch };
|
|
}
|