badguardhome/client/src/components/ui/Accordion.js

44 lines
1.0 KiB
JavaScript
Raw Normal View History

2019-03-28 13:30:22 +00:00
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() {
2019-03-28 13:40:46 +00:00
const accordionClass = this.state.isOpen
? 'accordion__label accordion__label--open'
: 'accordion__label';
2019-03-28 13:30:22 +00:00
return (
<div className="accordion">
<div
2019-03-28 13:40:46 +00:00
className={accordionClass}
2019-03-28 13:30:22 +00:00
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;