UNPKG

2.28 kBJavaScriptView Raw
1import _extends from "@babel/runtime-corejs2/helpers/esm/extends";
2import _inheritsLoose from "@babel/runtime-corejs2/helpers/esm/inheritsLoose";
3import PropTypes from 'prop-types';
4import React from 'react';
5import { prefix, splitBsProps, bsClass } from './utils/bootstrapUtils';
6import Collapse from './Collapse';
7var propTypes = {
8 /**
9 * Callback fired before the component expands
10 */
11 onEnter: PropTypes.func,
12
13 /**
14 * Callback fired after the component starts to expand
15 */
16 onEntering: PropTypes.func,
17
18 /**
19 * Callback fired after the component has expanded
20 */
21 onEntered: PropTypes.func,
22
23 /**
24 * Callback fired before the component collapses
25 */
26 onExit: PropTypes.func,
27
28 /**
29 * Callback fired after the component starts to collapse
30 */
31 onExiting: PropTypes.func,
32
33 /**
34 * Callback fired after the component has collapsed
35 */
36 onExited: PropTypes.func
37};
38var contextTypes = {
39 $bs_panel: PropTypes.shape({
40 headingId: PropTypes.string,
41 bodyId: PropTypes.string,
42 bsClass: PropTypes.string,
43 expanded: PropTypes.bool
44 })
45};
46
47var PanelCollapse =
48/*#__PURE__*/
49function (_React$Component) {
50 _inheritsLoose(PanelCollapse, _React$Component);
51
52 function PanelCollapse() {
53 return _React$Component.apply(this, arguments) || this;
54 }
55
56 var _proto = PanelCollapse.prototype;
57
58 _proto.render = function render() {
59 var children = this.props.children;
60
61 var _ref = this.context.$bs_panel || {},
62 headingId = _ref.headingId,
63 bodyId = _ref.bodyId,
64 _bsClass = _ref.bsClass,
65 expanded = _ref.expanded;
66
67 var _splitBsProps = splitBsProps(this.props),
68 bsProps = _splitBsProps[0],
69 props = _splitBsProps[1];
70
71 bsProps.bsClass = _bsClass || bsProps.bsClass;
72
73 if (headingId && bodyId) {
74 props.id = bodyId;
75 props.role = props.role || 'tabpanel';
76 props['aria-labelledby'] = headingId;
77 }
78
79 return React.createElement(Collapse, _extends({
80 in: expanded
81 }, props), React.createElement("div", {
82 className: prefix(bsProps, 'collapse')
83 }, children));
84 };
85
86 return PanelCollapse;
87}(React.Component);
88
89PanelCollapse.propTypes = propTypes;
90PanelCollapse.contextTypes = contextTypes;
91export default bsClass('panel', PanelCollapse);
\No newline at end of file