UNPKG

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