stremio-web/src/common/useAnimationFrame.js
2019-10-02 22:42:11 +03:00

20 lines
615 B
JavaScript

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;
}, []);
return [request, cancel];
};
module.exports = useAnimationFrame;