import React from 'react'; import Router from 'component/router/index'; import Header from 'component/header'; import Theme from 'component/theme'; import ModalRouter from 'modal/modalRouter'; import ReactModal from 'react-modal'; import throttle from 'util/throttle'; class App extends React.PureComponent { constructor() { super(); this.mainContent = undefined; } componentWillMount() { const { alertError } = this.props; document.addEventListener('unhandledError', event => { alertError(event.detail); }); } componentDidMount() { const { recordScroll } = this.props; const mainContent = document.getElementById('main-content'); this.mainContent = mainContent; const scrollListener = () => recordScroll(this.mainContent.scrollTop); this.mainContent.addEventListener('scroll', throttle(scrollListener, 750)); ReactModal.setAppElement('#window'); // fuck this } componentWillUnmount() { this.mainContent.removeEventListener('scroll', this.scrollListener); } componentWillReceiveProps(props) { this.setTitleFromProps(props); } componentDidUpdate(prevProps) { const { currentStackIndex: prevStackIndex } = prevProps; const { currentStackIndex, currentPageAttributes } = this.props; if (currentStackIndex !== prevStackIndex) { this.mainContent.scrollTop = currentPageAttributes.scrollY || 0; } } setTitleFromProps(props) { window.document.title = props.pageTitle || 'LBRY'; } render() { return (
); } } export default App;