frontend/app/displayboxes/DisplayBox.jsx (30 lines of code) (raw):
import React from 'react';
import PropTypes from 'prop-types';
class DisplayBox extends React.Component {
static propTypes = {
title: PropTypes.string,
entry: PropTypes.object.isRequired,
extraClasses: PropTypes.string,
listData: PropTypes.array,
validationComponent: PropTypes.object
};
/**
* override this in a subclass to put actual body content into the box
* @returns {*}
*/
renderBodyContent(){
return <p/>
}
render(){
const classNameList = this.props.extraClasses ? "displaybox " + this.props.extraClasses : "displaybox";
return <div className={classNameList}>
<span className="displaybox-title">{this.props.title}{this.props.validationComponent ? this.props.validationComponent : ""}</span>
<div className="displaybox-content">
{
this.renderBodyContent()
}
</div>
</div>
}
}
export default DisplayBox;