UNPKG

@themesberg/react-bootstrap

Version:

Unofficial release of the react-bootstrap library with Bootstrap 5 components built with React

48 lines (47 loc) 2.06 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; import classNames from 'classnames'; import React, { useMemo } from 'react'; import { useUncontrolled } from 'uncontrollable'; import { useBootstrapPrefix } from './ThemeProvider'; import AccordionBody from './AccordionBody'; import AccordionButton from './AccordionButton'; import AccordionCollapse from './AccordionCollapse'; import AccordionContext from './AccordionContext'; import AccordionHeader from './AccordionHeader'; import AccordionItem from './AccordionItem'; var Accordion = /*#__PURE__*/React.forwardRef(function (props, ref) { var _useUncontrolled = useUncontrolled(props, { activeKey: 'onSelect' }), _useUncontrolled$as = _useUncontrolled.as, Component = _useUncontrolled$as === void 0 ? 'div' : _useUncontrolled$as, activeKey = _useUncontrolled.activeKey, bsPrefix = _useUncontrolled.bsPrefix, children = _useUncontrolled.children, className = _useUncontrolled.className, onSelect = _useUncontrolled.onSelect, flush = _useUncontrolled.flush, controlledProps = _objectWithoutPropertiesLoose(_useUncontrolled, ["as", "activeKey", "bsPrefix", "children", "className", "onSelect", "flush"]); var prefix = useBootstrapPrefix(bsPrefix, 'accordion'); var contextValue = useMemo(function () { return { activeEventKey: activeKey, onSelect: onSelect }; }, [activeKey, onSelect]); return /*#__PURE__*/React.createElement(AccordionContext.Provider, { value: contextValue }, /*#__PURE__*/React.createElement(Component, _extends({ ref: ref }, controlledProps, { className: classNames(className, prefix, flush && prefix + "-flush") }), children)); }); Accordion.displayName = 'Accordion'; Accordion.Button = AccordionButton; Accordion.Collapse = AccordionCollapse; Accordion.Item = AccordionItem; Accordion.Header = AccordionHeader; Accordion.Body = AccordionBody; export default Accordion;