@tamagui/react-native-web-lite
Version:
React Native for Web
34 lines (29 loc) • 921 B
text/typescript
/**
* Copyright (c) Nicolas Gallagher.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const _requestIdleCallback = function (cb: Function, options?: any) {
return setTimeout(() => {
const start = Date.now()
cb({
didTimeout: false,
timeRemaining() {
return Math.max(0, 50 - (Date.now() - start))
},
})
}, 1)
}
const _cancelIdleCallback = function (id: any) {
clearTimeout(id)
}
const isSupported = typeof window !== 'undefined' && typeof window.requestIdleCallback !== 'undefined'
const requestIdleCallback: (cb: any, options?: any) => any = isSupported
? window.requestIdleCallback
: _requestIdleCallback
const cancelIdleCallback: (id: any) => void = isSupported
? window.cancelIdleCallback
: _cancelIdleCallback
export default requestIdleCallback
export { cancelIdleCallback }