import React, { Component, PropTypes } from 'react'; import { connect } from 'react-redux'; import Helmet from 'react-helmet'; import { Topbar } from '../../containers'; const scrollToTop = () => { // Todo: this might need fine tuning later window.scrollTo(0, 0); }; class PageLayout extends Component { componentDidMount() { this.historyUnlisten = this.context.history.listen(() => scrollToTop()); } componentWillUnmount() { this.historyUnlisten(); } render() { const { className, title, children, loginError, logoutError } = this.props; // TODO: use FlashMessages for loginError/logoutError return (
{loginError ?

Error in login: {loginError}

: null} {logoutError ?

Error in logout: {logoutError}

: null}

{title}

{children}
); } } const { any, object, string } = PropTypes; PageLayout.contextTypes = { history: object }; PageLayout.defaultProps = { className: '', children: null, loginError: '', logoutError: '' }; PageLayout.propTypes = { className: string, title: string.isRequired, children: any, loginError: string, logoutError: string, }; const mapStateToProps = state => ({ loginError: state.Auth.loginError, logoutError: state.Auth.logoutError, }); export default connect(mapStateToProps)(PageLayout);