Current Path : /storage/v11800/alliedessence/public_html/wp-content/plugins/lottiefiles/src/hooks/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/alliedessence/public_html/wp-content/plugins/lottiefiles/src/hooks/use-lazy-query.ts |
import { useRef, useState, useEffect, useCallback } from "react";
import { useQuery, UseQueryArgs, UseQueryResponse } from "urql";
const useLazyQuery: (
args: Omit<UseQueryArgs, "pause">
) => UseQueryResponse = (args) => {
const firstUpdate = useRef(true);
const [variables, setVariables] = useState<any>();
const [result, refetch] = useQuery({
...args,
variables,
pause: true
});
useEffect(() => {
if (firstUpdate.current) {
firstUpdate.current = false;
return;
}
refetch();
}, [variables]);
const makeRequest = useCallback((reqVariables: unknown) => {
setVariables(reqVariables);
}, []);
return [result, makeRequest];
};
export default useLazyQuery;