@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.
49 lines (47 loc) • 1.59 kB
JavaScript
;
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
exports.__esModule = true;
exports.default = exports.AccordionSection = void 0;
var _react = _interopRequireDefault(require("react"));
var _clsx = _interopRequireDefault(require("clsx"));
var _AccordionContext = require("./AccordionContext");
var _tailwind = require("../common/tailwind");
var _AccordionSection = _interopRequireDefault(require("./AccordionSection"));
exports.AccordionSection = _AccordionSection.default;
const Accordion = ({
children,
dataTest,
id,
spaceAfter,
expandedSection,
loading,
loadingTitle,
loadingHidden,
onExpand
}) => /*#__PURE__*/_react.default.createElement("div", {
className: (0, _clsx.default)("orbit-accordion font-base relative w-full", spaceAfter && _tailwind.spaceAfterClasses[spaceAfter]),
id: id,
"data-test": dataTest
}, children ? _react.default.Children.map(children, item => {
if (!item) return null;
// @ts-expect-error TODO
const {
id: innerId
} = item.props;
// Determine if section is expanded
const isExpanded = expandedSection === innerId;
// Callback with section id
// onExpand is not required prop to have easier loading use case
const handleExpand = () => onExpand && onExpand(innerId);
return /*#__PURE__*/_react.default.createElement(_AccordionContext.Provider, {
value: {
expanded: isExpanded,
onExpand: handleExpand,
loading,
loadingTitle,
loadingHidden
}
}, item);
}) : null);
var _default = exports.default = Accordion;