react-use
Version:
Collection of React Hooks
18 lines (17 loc) • 592 B
JavaScript
import { useCallback, useRef, useState } from 'react';
import useUnmount from './useUnmount';
var useRafState = function (initialState) {
var frame = useRef(0);
var _a = useState(initialState), state = _a[0], setState = _a[1];
var setRafState = useCallback(function (value) {
cancelAnimationFrame(frame.current);
frame.current = requestAnimationFrame(function () {
setState(value);
});
}, []);
useUnmount(function () {
cancelAnimationFrame(frame.current);
});
return [state, setRafState];
};
export default useRafState;