import React from "react"; import Router from "component/router"; import Header from "component/header"; import ModalError from "component/modalError"; import ModalDownloading from "component/modalDownloading"; import ModalInsufficientCredits from "component/modalInsufficientCredits"; import ModalUpgrade from "component/modalUpgrade"; import ModalWelcome from "component/modalWelcome"; import ModalFirstReward from "component/modalFirstReward"; import lbry from "lbry"; import * as modals from "constants/modal_types"; class App extends React.PureComponent { componentWillMount() { const { alertError, checkUpgradeAvailable, updateBalance, fetchRewardedContent, } = this.props; document.addEventListener("unhandledError", event => { alertError(event.detail); }); if (!this.props.upgradeSkipped) { checkUpgradeAvailable(); } lbry.balanceSubscribe(balance => { updateBalance(balance); }); fetchRewardedContent(); this.showWelcome(this.props); this.scrollListener = () => this.props.recordScroll(window.scrollY); window.addEventListener("scroll", this.scrollListener); } componentWillReceiveProps(nextProps) { this.showWelcome(nextProps); } showWelcome(props) { const { isWelcomeAcknowledged, openWelcomeModal, user } = props; if ( !isWelcomeAcknowledged && user && !user.is_reward_approved && !user.is_identity_verified ) { openWelcomeModal(); } } componentWillUnmount() { window.removeEventListener("scroll", this.scrollListener); } render() { const { modal } = this.props; return (