Page MenuHomec4science

useIsMutating.js
No OneTemporary

File Metadata

Created
Wed, Jul 23, 03:49

useIsMutating.js

import React from 'react';
import { notifyManager } from '../core/notifyManager';
import { parseMutationFilterArgs } from '../core/utils';
import { useQueryClient } from './QueryClientProvider';
export function useIsMutating(arg1, arg2) {
var mountedRef = React.useRef(false);
var filters = parseMutationFilterArgs(arg1, arg2);
var queryClient = useQueryClient();
var _React$useState = React.useState(queryClient.isMutating(filters)),
isMutating = _React$useState[0],
setIsMutating = _React$useState[1];
var filtersRef = React.useRef(filters);
filtersRef.current = filters;
var isMutatingRef = React.useRef(isMutating);
isMutatingRef.current = isMutating;
React.useEffect(function () {
mountedRef.current = true;
var unsubscribe = queryClient.getMutationCache().subscribe(notifyManager.batchCalls(function () {
if (mountedRef.current) {
var newIsMutating = queryClient.isMutating(filtersRef.current);
if (isMutatingRef.current !== newIsMutating) {
setIsMutating(newIsMutating);
}
}
}));
return function () {
mountedRef.current = false;
unsubscribe();
};
}, [queryClient]);
return isMutating;
}

Event Timeline