123456789101112131415161718192021222324252627282930 |
- import {useCallback, useState} from 'react';
- import useTimeout from 'sentry/utils/useTimeout';
- const HOVERCARD_CONTENT_DELAY = 400;
- export function useDelayedLoadingState() {
- const [shouldShowLoadingState, setShouldShowLoadingState] = useState(false);
- const onTimeout = useCallback(() => {
- setShouldShowLoadingState(true);
- }, []);
- const {start, end, cancel} = useTimeout({
- timeMs: HOVERCARD_CONTENT_DELAY,
- onTimeout,
- });
- const reset = useCallback(() => {
- setShouldShowLoadingState(false);
- cancel();
- }, [cancel]);
- return {
- shouldShowLoadingState,
- onRequestBegin: start,
- onRequestEnd: end,
- reset,
- };
- }
|