diff --git a/src/CSSTransition.ts b/src/CSSTransition.ts index 0f6e290..f08ce48 100644 --- a/src/CSSTransition.ts +++ b/src/CSSTransition.ts @@ -51,6 +51,19 @@ const computeClassName = (phase: Phase, classNames: CSSTransitionClassNames) => export default (props: CSSTransitionProps): VNode => { const { children, classNames, ...rest } = props; + + if (!rest.duration) { + const addEndListener = rest.addEndListener; + + rest.addEndListener = (node: Element, done: () => void) => { + if (addEndListener) { + addEndListener(node, done); + } else { + node.addEventListener("transitionend", done, { once: true }); + } + }; + } + return createElement(Transition, rest, (state, phase: Phase) => { const { className } = children.props;