UNPKG

1.76 kBJavaScriptView Raw
1import _extends from "@babel/runtime/helpers/esm/extends";
2import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3import classNames from 'classnames';
4import React from 'react';
5import { useUncontrolled } from 'uncontrollable';
6import { useBootstrapPrefix } from './ThemeProvider';
7import AccordionToggle from './AccordionToggle';
8import SelectableContext from './SelectableContext';
9import AccordionCollapse from './AccordionCollapse';
10import AccordionContext from './AccordionContext';
11var Accordion = /*#__PURE__*/React.forwardRef(function (props, ref) {
12 var _useUncontrolled = useUncontrolled(props, {
13 activeKey: 'onSelect'
14 }),
15 _useUncontrolled$as = _useUncontrolled.as,
16 Component = _useUncontrolled$as === void 0 ? 'div' : _useUncontrolled$as,
17 activeKey = _useUncontrolled.activeKey,
18 bsPrefix = _useUncontrolled.bsPrefix,
19 children = _useUncontrolled.children,
20 className = _useUncontrolled.className,
21 onSelect = _useUncontrolled.onSelect,
22 controlledProps = _objectWithoutPropertiesLoose(_useUncontrolled, ["as", "activeKey", "bsPrefix", "children", "className", "onSelect"]);
23
24 var finalClassName = classNames(className, useBootstrapPrefix(bsPrefix, 'accordion'));
25 return /*#__PURE__*/React.createElement(AccordionContext.Provider, {
26 value: activeKey || null
27 }, /*#__PURE__*/React.createElement(SelectableContext.Provider, {
28 value: onSelect || null
29 }, /*#__PURE__*/React.createElement(Component, _extends({
30 ref: ref
31 }, controlledProps, {
32 className: finalClassName
33 }), children)));
34});
35Accordion.displayName = 'Accordion';
36Accordion.Toggle = AccordionToggle;
37Accordion.Collapse = AccordionCollapse;
38export default Accordion;
\No newline at end of file