From 5b9bda680fe7bd2fa20fc21ff619f212f2153a9e Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Fri, 6 Mar 2020 13:41:51 +0200 Subject: [PATCH] cancel previous animation frame when request new --- src/common/useAnimationFrame.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/common/useAnimationFrame.js b/src/common/useAnimationFrame.js index d1b5999fa..e37494cac 100644 --- a/src/common/useAnimationFrame.js +++ b/src/common/useAnimationFrame.js @@ -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]; };