@atlaskit/popup
Version:
A popup displays brief content in an overlay.
22 lines • 675 B
JavaScript
import { useCallback, useRef } from 'react';
export const useAnimationFrame = () => {
const animationsRef = useRef([]);
const requestFrame = useCallback(callback => {
const id = requestAnimationFrame(callback);
animationsRef.current.push(id);
return id;
}, []);
const cancelFrame = useCallback(id => {
cancelAnimationFrame(id);
animationsRef.current = animationsRef.current.filter(frameId => frameId !== id);
}, []);
const cancelAllFrames = useCallback(() => {
animationsRef.current.forEach(id => cancelAnimationFrame(id));
animationsRef.current = [];
}, []);
return {
requestFrame,
cancelFrame,
cancelAllFrames
};
};