18 lines
475 B
JavaScript
18 lines
475 B
JavaScript
|
// @flow
|
||
|
import React from 'react';
|
||
|
import usePrevious from 'effects/use-previous';
|
||
|
|
||
|
// Returns true once a loading value has changed from false => true => false
|
||
|
export default function useFetched(fetching: boolean) {
|
||
|
const wasFetching = usePrevious(fetching);
|
||
|
const [fetched, setFetched] = React.useState(false);
|
||
|
|
||
|
React.useEffect(() => {
|
||
|
if (wasFetching && !fetching) {
|
||
|
setFetched(true);
|
||
|
}
|
||
|
}, [wasFetching, fetching, setFetched]);
|
||
|
|
||
|
return fetched;
|
||
|
}
|