import React from 'react';
import PropTypes from 'prop-types';
class Accordion extends React.Component {
render() {
const content = this.props.panels.map((panel, p) => {
return (
<div className={`panel box ${panel.theme}`} key={`panel-${p}`}>
<div className={`box-header${panel.hasBorder ? ' with-border' : ''}`}>
<h4 className="box-title">
<a
data-toggle="collapse"
data-parent={`#${this.props.id}`}
href={`#${panel.id}`}
className={panel.open ? '' : 'collapsed'}
>
{panel.header}
</a>
</h4>
</div>
<div id={panel.id} className={`panel-collapse collapse${panel.open ? ' in' : ''}`}>
<div className="box-body">
{panel.body}
</div>
</div>
</div>
);
});
return (
<div className="box-group" id={this.props.id}>
{content}
</div>
);
}
}
Accordion.propTypes = {
id: PropTypes.string.isRequired,
panels: PropTypes.array
};
Accordion.defaultProps = {
panels: []
};
export default Accordion;
|