UNPKG

ra-core

Version:

Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React

37 lines 1.36 kB
import { useEffect, useState } from 'react'; import { useQueryClient, QueryObserver } from '@tanstack/react-query'; /** * Check if react-query has already fetched data for a query key. * * This hook is reactive. * * @example * const isCustomerLoaded = useIsDataLoaded(['customers', 'getOne', { id: customerId }]); * * @returns {boolean} true if the data is loaded, false otherwise */ export var useIsDataLoaded = function (queryKey, options) { if (options === void 0) { options = {}; } var _a = options.enabled, enabled = _a === void 0 ? true : _a; var queryClient = useQueryClient(); var _b = useState(function () { if (!enabled) { return false; } return queryClient.getQueryData(queryKey) !== undefined; }), isDataLoaded = _b[0], setDataLoaded = _b[1]; useEffect(function () { if (!enabled) return; if (queryClient.getQueryData(queryKey) === undefined) { var observer = new QueryObserver(queryClient, { queryKey: queryKey }); var unsubscribe_1 = observer.subscribe(function (result) { setDataLoaded(!result.isPending); unsubscribe_1(); }); return unsubscribe_1; } }, [enabled, queryKey, queryClient]); return isDataLoaded; }; //# sourceMappingURL=useIsDataLoaded.js.map