UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

43 lines 1.62 kB
/** * AccordionWrapper module. * @module @massds/mayflower-react/AccordionWrapper * @requires module:@massds/mayflower-assets/scss/03-organisms/accordion-wrapper */ import React from "react"; import PropTypes from "prop-types"; const AccordionWrapper = props => { const children = props.children; return /*#__PURE__*/React.createElement("div", { className: "ma__accordion-wrapper" }, React.Children.map(children, child => { if (/*#__PURE__*/React.isValidElement(child)) { const clone = /*#__PURE__*/React.cloneElement(child, { secondary: props.secondary, emphasize: props.emphasize, border: props.border, headerLevel: props.headerLevel }); return clone; } return /* eslint-disable-next-line no-console */console.warn('Warning! You can only pass an AccordionItem child to AccordionWrapper.'); })); }; AccordionWrapper.propTypes = process.env.NODE_ENV !== "production" ? { /** Only AccordionItem can be passed as a Child to the AccordionWrapper */ children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]), /** Whether accordion children are emphasized or not. */ emphasize: PropTypes.bool, /** Whether accordion children are with border or not. */ border: PropTypes.bool, /** Whether accordion is a primary or secondary accordion. */ secondary: PropTypes.bool, /** The heading levels of children accordion */ headerLevel: PropTypes.number } : {}; AccordionWrapper.defaultProps = { border: true, emphasize: true, secondary: false, headerLevel: 2 }; export default AccordionWrapper;