import { useEffect } from '@wordpress/element'; import confetti from 'canvas-confetti'; export const useConfetti = (config = {}, time = 0, ready = false) => { useEffect(() => { if (!ready) return; const secondsFromNow = Date.now() + time; const frame = () => { confetti({ ...config, disableForReducedMotion: true, zIndex: 100000, }); if (Date.now() < secondsFromNow) { // run every two frames requestAnimationFrame(() => { requestAnimationFrame(frame); }); } }; frame(); }, [config, time, ready]); };