Files
bsky-social-app/src/lib/hooks/useDedupe.ts
Samuel Newman 3b2573bc56 [Lighbox perf - 1] Fix memoization of List component, defer re-rendering when opening lightbox (#9759)
* memoize FlatList_INTERNAL

* defer render, put handleScrolledDownChange in non reactive callback

* lintfix useDedupe
2026-01-28 07:35:43 -08:00

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],
)
}