cancel previous animation frame when request new

This commit is contained in:
nklhrstv 2020-03-06 13:41:51 +02:00
parent e6bfd40472
commit 5b9bda680f

View file

@ -2,18 +2,17 @@ const React = require('react');
const useAnimationFrame = () => {
const animationFrameId = React.useRef(null);
const request = React.useCallback((cb) => {
if (animationFrameId.current === null) {
animationFrameId.current = requestAnimationFrame(() => {
cb();
animationFrameId.current = null;
});
}
}, []);
const cancel = React.useCallback(() => {
cancelAnimationFrame(animationFrameId.current);
animationFrameId.current = null;
}, []);
const request = React.useCallback((cb) => {
cancel();
animationFrameId.current = requestAnimationFrame(() => {
cb();
animationFrameId.current = null;
});
}, []);
return [request, cancel];
};