public/js/components/Page.js (32 lines of code) (raw):

import React from 'react'; import {PropTypes} from 'prop-types'; import Header from './Header/Header'; import AppMessage from './AppMessage/AppMessage'; import { routerShape } from 'react-router/lib/PropTypes'; class Page extends React.Component { static propTypes = { children: PropTypes.element.isRequired, config: PropTypes.shape({ isEmbedded: PropTypes.bool.isRequired }), error: PropTypes.string, router: routerShape }; isFindPage() { return this.props.router.isActive("/find"); } render() { return ( <div className={this.props.config.isEmbedded ? "page is-embedded" : "page"}> <div className="page__header"> <Header router={this.props.router} isFindPage={this.isFindPage()} /> <AppMessage error={this.props.error} /> </div> <div className="page__content"> {this.props.children} </div> </div> ); } } //REDUX CONNECTIONS import { connect } from 'react-redux'; function mapStateToProps(state) { return { config: state.config, error: state.error }; } export default connect(mapStateToProps)(Page);