import React, { Component } from 'react'; import PropTypes from 'prop-types'; import './Accordion.css'; class Accordion extends Component { state = { isOpen: false, }; handleClick = () => { this.setState((prevState) => ({ isOpen: !prevState.isOpen })); }; render() { const accordionClass = this.state.isOpen ? 'accordion__label accordion__label--open' : 'accordion__label'; return ( <div className="accordion"> <div className={accordionClass} onClick={this.handleClick} > {this.props.label} </div> {this.state.isOpen && ( <div className="accordion__content"> {this.props.children} </div> )} </div> ); } } Accordion.propTypes = { children: PropTypes.node.isRequired, label: PropTypes.string.isRequired, }; export default Accordion;