UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

58 lines (51 loc) 1.18 kB
/** * MSKCC 2021, 2024 */ import window from 'window-or-global'; // mdn resize function const OptimizedResize = function optimizedResize() { const callbacks = []; let running = false; // run the actual callbacks function runCallbacks() { callbacks.forEach(callback => { callback(); }); running = false; } // fired on resize event function resize() { if (!running) { running = true; window.requestAnimationFrame(runCallbacks); } } // adds callback to loop function addCallback(callback) { if (callback) { const index = callbacks.indexOf(callback); if (index < 0) { callbacks.push(callback); } } } return { // public method to add additional callback add: callback => { if (!callbacks.length) { window.addEventListener('resize', resize); } addCallback(callback); return { release() { const index = callbacks.indexOf(callback); if (index >= 0) { callbacks.splice(index, 1); } } }; } }; }(); var OptimizedResize$1 = OptimizedResize; export { OptimizedResize$1 as default };