UNPKG

react-bootstrap

Version:

Bootstrap 5 components built with React

42 lines (41 loc) 1.39 kB
"use client"; import classNames from 'classnames'; import * as React from 'react'; import { ENTERED, ENTERING, EXITING } from 'react-transition-group/Transition'; import { getChildRef } from '@restart/ui/utils'; import transitionEndListener from './transitionEndListener'; import TransitionWrapper from './TransitionWrapper'; import { useBootstrapPrefix } from './ThemeProvider'; import { jsx as _jsx } from "react/jsx-runtime"; const transitionStyles = { [ENTERING]: 'show', [ENTERED]: 'show' }; const OffcanvasToggling = /*#__PURE__*/React.forwardRef(({ bsPrefix, className, children, in: inProp = false, mountOnEnter = false, unmountOnExit = false, appear = false, ...props }, ref) => { bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas'); return /*#__PURE__*/_jsx(TransitionWrapper, { ref: ref, addEndListener: transitionEndListener, in: inProp, mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit, appear: appear, ...props, childRef: getChildRef(children), children: (status, innerProps) => /*#__PURE__*/React.cloneElement(children, { ...innerProps, className: classNames(className, children.props.className, (status === ENTERING || status === EXITING) && `${bsPrefix}-toggling`, transitionStyles[status]) }) }); }); OffcanvasToggling.displayName = 'OffcanvasToggling'; export default OffcanvasToggling;