Current path: home/webdevt/www/demo2/wp-content/themes/blocksy/static/js/frontend/helpers/
?? Go up: /home/webdevt/www/demo2/wp-content/themes/blocksy/static/js/frontend
export function whenTransitionEnds(el, cb) {
let timeoutId = null
let didEnd = false
const end = () => {
clearTimeout(timeoutId)
el.removeEventListener('transitionend', onEnd)
if (!didEnd) {
didEnd = true
cb()
}
}
const onEnd = (e) => {
// Very important check.
//
// Sometimes transitionend event is propagated from children to parent
// and the children transition might be shorter than the parent's one
// and thus the parent's transitionend event is triggered too early.
if (e.target === el) {
end()
}
}
const transitionDuration =
parseFloat(getComputedStyle(el).transitionDuration) * 1000
el.addEventListener('transitionend', onEnd)
timeoutId = setTimeout(() => {
end()
}, transitionDuration)
}