UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

37 lines (34 loc) 1.16 kB
import getTransitionDurationFromElement from './getTransitionDurationFromElement.js'; const execute = (callback) => { if (typeof callback === 'function') { callback(); } }; const triggerTransitionEnd = (element) => { element.dispatchEvent(new Event('transitionend')); }; const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { if (!waitForTransition) { execute(callback); return; } const durationPadding = 5; const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; let called = false; const handler = ({ target }) => { if (target !== transitionElement) { return; } called = true; transitionElement.removeEventListener('transitionend', handler); execute(callback); }; transitionElement.addEventListener('transitionend', handler); setTimeout(() => { if (!called) { triggerTransitionEnd(transitionElement); } }, emulatedDuration); }; export { executeAfterTransition as default }; //# sourceMappingURL=executeAfterTransition.js.map