react-bootstrap
Version:
Bootstrap 5 components built with React
19 lines (17 loc) • 595 B
JavaScript
import css from 'dom-helpers/css';
import transitionEnd from 'dom-helpers/transitionEnd';
function parseDuration(node, property) {
const str = css(node, property) || '';
const mult = str.indexOf('ms') === -1 ? 1000 : 1;
return parseFloat(str) * mult;
}
export default function transitionEndListener(element, handler) {
const duration = parseDuration(element, 'transitionDuration');
const delay = parseDuration(element, 'transitionDelay');
const remove = transitionEnd(element, e => {
if (e.target === element) {
remove();
handler(e);
}
}, duration + delay);
}