UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

85 lines (65 loc) 2.96 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var React = _interopRequireWildcard(require("react")); var _AccordionContext = require("../AccordionContext"); var _useRandomId = _interopRequireDefault(require("../../hooks/useRandomId")); var _useBoundingRect3 = _interopRequireDefault(require("../../hooks/useBoundingRect")); var _Slide = _interopRequireDefault(require("../../utils/Slide")); var _Loading = _interopRequireDefault(require("../../Loading")); var _AccordionWrapper = _interopRequireDefault(require("../components/AccordionWrapper")); var _SectionHeader = _interopRequireDefault(require("./components/SectionHeader")); var _SectionFooter = _interopRequireDefault(require("./components/SectionFooter")); var _SectionContent = _interopRequireDefault(require("./components/SectionContent")); var AccordionSection = function AccordionSection(_ref) { var children = _ref.children, header = _ref.header, footer = _ref.footer, actions = _ref.actions, dataTest = _ref.dataTest, _ref$expandable = _ref.expandable, expandable = _ref$expandable === void 0 ? true : _ref$expandable; var _useAccordion = (0, _AccordionContext.useAccordion)(), expanded = _useAccordion.expanded, onExpand = _useAccordion.onExpand, loading = _useAccordion.loading; var slideId = (0, _useRandomId.default)(); var isExpanded = expandable && expanded; var _useBoundingRect = (0, _useBoundingRect3.default)({ height: isExpanded ? null : 0 }), _useBoundingRect2 = (0, _slicedToArray2.default)(_useBoundingRect, 2), height = _useBoundingRect2[0].height, ref = _useBoundingRect2[1]; return /*#__PURE__*/React.createElement(_AccordionWrapper.default, { dataTest: dataTest }, /*#__PURE__*/React.createElement(_Loading.default, { loading: loading, type: "boxLoader", dataTest: dataTest && "".concat(dataTest, "Loading") }, header && /*#__PURE__*/React.createElement(_SectionHeader.default, { actions: actions, expanded: Boolean(isExpanded), onExpand: onExpand, expandable: expandable, dataTest: dataTest }, header), /*#__PURE__*/React.createElement(_Slide.default, { maxHeight: height, expanded: isExpanded, id: slideId, ariaLabelledBy: slideId }, /*#__PURE__*/React.createElement("div", { ref: ref }, children && /*#__PURE__*/React.createElement(_SectionContent.default, { dataTest: dataTest }, children), footer && /*#__PURE__*/React.createElement(_SectionFooter.default, { dataTest: dataTest }, footer))))); }; var _default = AccordionSection; exports.default = _default;