import React, { Component } from 'react'; import { FormattedMessage as Message } from 'react-intl'; import { Route, Link, Switch } from 'react-router-dom'; import Helmet from 'react-helmet'; import classNames from 'classnames'; import AuthPage from 'pages/auth/AuthPage'; import ProfilePage from 'pages/profile/ProfilePage'; import RulesPage from 'pages/rules/RulesPage'; import PageNotFound from 'pages/404/PageNotFound'; // @flow import { restoreScroll } from 'functions'; import PrivateRoute from 'containers/PrivateRoute'; import AuthFlowRoute from 'containers/AuthFlowRoute'; import Userbar from 'components/userbar/Userbar'; import PopupStack from 'components/ui/popup/PopupStack'; import loader from 'services/loader'; import type { User } from 'components/user'; import styles from './root.scss'; import messages from './RootPage.intl.json'; /* global process: false */ let DevTools; if (process.env.NODE_ENV === 'production') { DevTools = () => null; } else { DevTools = require('containers/DevTools').default; } class RootPage extends Component { props: { user: User, isPopupActive: boolean, onLogoClick: Function, location: { pathname: string } }; componentDidMount() { this.onPageUpdate(); } componentDidUpdate() { this.onPageUpdate(); } onPageUpdate() { loader.hide(); restoreScroll(); } render() { const props = this.props; const {user} = this.props; const isRegisterPage = props.location.pathname === '/register'; if (document && document.body) { document.body.style.overflow = props.isPopupActive ? 'hidden' : ''; } return (