mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-06 07:53:54 +00:00
f7b58f5ebd
deriveQueryStatus previously inferred "never received data" by checking data !== undefined itself. TanStack Query already computes and exposes this exact distinction as isLoadingError (isError && no data) vs isRefetchError (isError && data present) on every useQuery result, so consume that directly instead of duplicating the logic.
21 lines
822 B
TypeScript
21 lines
822 B
TypeScript
import { useQuery } from '@tanstack/react-query';
|
|
import { CustomFields } from 'ontime-types';
|
|
|
|
import { queryRefetchIntervalSlow } from '../../ontimeConfig';
|
|
import { CUSTOM_FIELDS } from '../api/constants';
|
|
import { getCustomFields } from '../api/customFields';
|
|
import { deriveQueryStatus } from '../utils/queryUtils';
|
|
|
|
const placeholder: CustomFields = {};
|
|
|
|
export default function useCustomFields() {
|
|
const { data, status, isFetching, isError, isLoadingError, refetch } = useQuery({
|
|
queryKey: CUSTOM_FIELDS,
|
|
queryFn: ({ signal }) => getCustomFields({ signal }),
|
|
placeholderData: (previousData, _previousQuery) => previousData,
|
|
refetchInterval: queryRefetchIntervalSlow,
|
|
});
|
|
|
|
return { data: data ?? placeholder, status: deriveQueryStatus(status, isLoadingError), isFetching, isError, refetch };
|
|
}
|