public/js/components/Header/Header.js (46 lines of code) (raw):

import React from 'react'; import {PropTypes} from 'prop-types'; import {Link} from 'react-router'; import {routerShape} from 'react-router/lib/PropTypes'; import {atomPropType} from '../../constants/atomPropType'; import EditHeader from './EditHeader'; import BrowseHeader from './BrowseHeader'; class Header extends React.Component { static propTypes = { atom: atomPropType, presence: PropTypes.bool, config: PropTypes.shape({ isEmbedded: PropTypes.bool.isRequired }), router: routerShape, isFindPage: PropTypes.bool.isRequired }; render () { return ( <div className={this.props.config.isEmbedded ? 'toolbar toolbar--embedded' : 'toolbar'}> {!this.props.config.isEmbedded ? <header className="toolbar__container"> <Link className="toolbar__title" href="/"> <div className="toolbar__page-icon"></div> <div className="toolbar__logo"></div> <div className="toolbar__title__hover-state"> <span className="toolbar__title__hover-state__title"> Back to <strong>dashboard</strong> </span> </div> </Link> </header> : false} {this.props.isFindPage ? <BrowseHeader /> : <EditHeader atom={this.props.atom} presence={this.props.presence}/>} </div> ); } } //REDUX CONNECTIONS import { connect } from 'react-redux'; function mapStateToProps(state) { return { atom: state.atom, config: state.config }; } export default connect(mapStateToProps)(Header);