rsuite
Version:
A suite of react components
43 lines • 1.41 kB
JavaScript
'use client';
import _extends from "@babel/runtime/helpers/esm/extends";
import React from 'react';
import classNames from 'classnames';
import Collapse from "../Animation/Collapse.js";
import Box from "../internals/Box/index.js";
import { useStyles } from "../internals/hooks/index.js";
import { mergeRefs } from "../internals/utils/index.js";
const SidenavDropdownCollapse = /*#__PURE__*/React.forwardRef((props, ref) => {
const {
as = 'ul',
className,
classPrefix = 'dropdown-menu',
open,
...restProps
} = props;
const {
withPrefix,
merge,
prefix
} = useStyles(classPrefix);
const classes = merge(className, withPrefix());
return /*#__PURE__*/React.createElement(Collapse, {
in: open,
exitedClassName: prefix`collapse-out`,
exitingClassName: prefix`collapsing`,
enteredClassName: prefix`collapse-in`,
enteringClassName: prefix`collapsing`
}, (transitionProps, transitionRef) => {
const {
className: transitionClassName,
...transitionRestProps
} = transitionProps;
return /*#__PURE__*/React.createElement(Box, _extends({
as: as,
ref: mergeRefs(ref, transitionRef),
role: "group",
className: classNames(classes, transitionClassName)
}, restProps, transitionRestProps));
});
});
SidenavDropdownCollapse.displayName = 'Sidenav.Dropdown.Collapse';
export default SidenavDropdownCollapse;