wix-style-react
Version:
wix-style-react
29 lines • 1.13 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import { useCollapse } from '../../providers/useCollapse';
/** Toggle is a component to solve ReactTransitionGroup bug with lagging collapse and expand transitions. */
const Toggle = ({ children, dataHook, mountOnEnter, show, timeout, unmountOnExit, onEnd, onStart, }) => {
const { getCollapseProps, exitAnimationEnded } = useCollapse({
isExpanded: show,
duration: process.env.NODE_ENV === 'test' ? 0 : timeout,
onCollapseStart: onEnd,
onExpandStart: onStart,
});
return (React.createElement("div", { "data-hook": dataHook, ...getCollapseProps() }, !show &&
(unmountOnExit || (mountOnEnter && unmountOnExit === false)) &&
exitAnimationEnded
? null
: children));
};
Toggle.displayName = 'Toggle';
Toggle.propTypes = {
children: PropTypes.node,
dataHook: PropTypes.string,
mountOnEnter: PropTypes.bool,
onStart: PropTypes.func,
onEnd: PropTypes.func,
show: PropTypes.bool,
unmountOnExit: PropTypes.bool,
};
export default Toggle;
//# sourceMappingURL=Toggle.js.map