3b2573bc56
* memoize FlatList_INTERNAL * defer render, put handleScrolledDownChange in non reactive callback * lintfix useDedupe
21 lines
390 B
TypeScript
21 lines
390 B
TypeScript
import {useCallback, useRef} from 'react'
|
|
|
|
export function useDedupe(timeout = 250) {
|
|
const canDo = useRef(true)
|
|
|
|
return useCallback(
|
|
(cb: () => unknown) => {
|
|
if (canDo.current) {
|
|
canDo.current = false
|
|
setTimeout(() => {
|
|
canDo.current = true
|
|
}, timeout)
|
|
cb()
|
|
return true
|
|
}
|
|
return false
|
|
},
|
|
[timeout],
|
|
)
|
|
}
|