PluginProbe
Elementor Website Builder – more than just a page builder / 3.8.0-beta1
Elementor Website Builder – more than just a page builder v3.8.0-beta1
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
elementor / app / modules / kit-library / assets / js / components / collapse.js

collapse.js in Elementor Website Builder – more than just a page builder 3.8.0-beta1, at app/modules/kit-library/assets/js/components/collapse.js

43 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import './collapse.scss';
2
3 export default function Collapse( props ) {
4 // The state of the collapse managed by the parent component to let the parent control if the collapse is open or closed by default.
5 return (
6 <div
7 className={ `eps-collapse ${ props.className }` }
8 data-open={ props.isOpen || undefined /* Set `undefined` when 'isOpen' equals `false` to avoid showing the attr "data-open" */ }
9 >
10 <button
11 className="eps-collapse__title"
12 onClick={ () => {
13 props.onChange( ( value ) => ! value );
14 props.onClick?.( props.isOpen, props.title );
15 } }
16 >
17 <span>{ props.title }</span>
18 <i className="eicon-chevron-right eps-collapse__icon" />
19 </button>
20 <div className="eps-collapse__content">
21 { props.children }
22 </div>
23 </div>
24 );
25 }
26
27 Collapse.propTypes = {
28 isOpen: PropTypes.bool,
29 onChange: PropTypes.func,
30 className: PropTypes.string,
31 title: PropTypes.node,
32 onClick: PropTypes.func,
33 children: PropTypes.oneOfType( [
34 PropTypes.node,
35 PropTypes.arrayOf( PropTypes.node ),
36 ] ),
37 };
38
39 Collapse.defaultProps = {
40 className: '',
41 isOpen: false,
42 };
43