File "collapse.js"
Full Path: /home/warrior1/public_html/languages/wp-content/plugins/elementor/app/modules/kit-library/assets/js/components/collapse.js
File size: 1.08 KB
MIME-type: text/x-java
Charset: utf-8
import './collapse.scss';
export default function Collapse( props ) {
// The state of the collapse managed by the parent component to let the parent control if the collapse is open or closed by default.
return (
<div
className={ `eps-collapse ${ props.className }` }
data-open={ props.isOpen || undefined /* Set `undefined` when 'isOpen' equals `false` to avoid showing the attr "data-open" */ }
>
<button
className="eps-collapse__title"
onClick={ () => {
props.onChange( ( value ) => ! value );
props.onClick?.( props.isOpen, props.title );
} }
>
<span>{ props.title }</span>
<i className="eicon-chevron-right eps-collapse__icon" />
</button>
<div className="eps-collapse__content">
{ props.children }
</div>
</div>
);
}
Collapse.propTypes = {
isOpen: PropTypes.bool,
onChange: PropTypes.func,
className: PropTypes.string,
title: PropTypes.node,
onClick: PropTypes.func,
children: PropTypes.oneOfType( [
PropTypes.node,
PropTypes.arrayOf( PropTypes.node ),
] ),
};
Collapse.defaultProps = {
className: '',
isOpen: false,
};