'use strict'; import React from 'react'; import Row from 'react-bootstrap/lib/Row'; import Col from 'react-bootstrap/lib/Col'; import PieceActions from '../../actions/piece_actions'; import MediaContainer from './media_container'; /** * This is the component that implements display-specific functionality */ let Piece = React.createClass({ propTypes: { piece: React.PropTypes.object, header: React.PropTypes.object, subheader: React.PropTypes.object, buttons: React.PropTypes.object, loadPiece: React.PropTypes.func, children: React.PropTypes.oneOfType([ React.PropTypes.arrayOf(React.PropTypes.element), React.PropTypes.element ]) }, updateObject() { return PieceActions.fetchOne(this.props.piece.id); }, render() { return ( <Row> <Col md={6}> <MediaContainer refreshObject={this.updateObject} content={this.props.piece}/> </Col> <Col md={6} className="ascribe-edition-details"> {this.props.header} {this.props.subheader} {this.props.buttons} {this.props.children} </Col> </Row> ); } }); export default Piece;