react-native-sortables
Version:
Powerful Sortable Components for Flexible Content Reordering in React Native
26 lines (24 loc) • 793 B
JavaScript
;
import { useCallback, useEffect } from 'react';
import { useSharedValue } from 'react-native-reanimated';
import { clearAnimatedTimeout, setAnimatedTimeout } from './animatedTimeout';
export function useAnimatedDebounce() {
const updateTimeoutId = useSharedValue(-1);
useEffect(() => {
return () => {
clearAnimatedTimeout(updateTimeoutId.value);
};
}, [updateTimeoutId]);
const debounce = useCallback((callback, timeout) => {
'worklet';
if (updateTimeoutId.value !== -1) {
clearAnimatedTimeout(updateTimeoutId.value);
}
updateTimeoutId.value = setAnimatedTimeout(() => {
callback();
updateTimeoutId.value = -1;
}, timeout);
}, [updateTimeoutId]);
return debounce;
}
//# sourceMappingURL=useAnimatedDebounce.js.map