19 lines
851 B
JavaScript
19 lines
851 B
JavaScript
import { useBrowserTimer } from './useBrowserTimer';
|
|
import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';
|
|
const setTimeoutNoop = (_callback)=>-1;
|
|
const clearTimeoutNoop = (_handle)=>undefined;
|
|
/**
|
|
* @internal
|
|
* Helper to manage a browser timeout.
|
|
* Ensures that the timeout isn't set multiple times at once and is cleaned up
|
|
* when the component is unloaded.
|
|
*
|
|
* @returns A pair of [setTimeout, clearTimeout] that are stable between renders.
|
|
*/ export function useTimeout() {
|
|
const { targetDocument } = useFluent();
|
|
const win = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView;
|
|
const setTimerFn = win ? win.setTimeout : setTimeoutNoop;
|
|
const clearTimerFn = win ? win.clearTimeout : clearTimeoutNoop;
|
|
return useBrowserTimer(setTimerFn, clearTimerFn);
|
|
}
|