// jshint esversion: 6 import React from "react"; import Helmet from "react-helmet"; import { connect } from "react-redux"; import Container from "./framework/container"; import Layout from "./framework/layout"; import LeftSideBar from "./leftSidebar"; import RightSideBar from "./rightSidebar"; import Legend from "./continuousLegend"; import Graph from "./graph/graph"; import MenuBar from "./menubar"; import Autosave from "./autosave"; import TermsOfServicePrompt from "./termsPrompt"; import actions from "../actions"; @connect((state) => ({ loading: state.controls.loading, error: state.controls.error, graphRenderCounter: state.controls.graphRenderCounter, })) class App extends React.Component { componentDidMount() { const { dispatch } = this.props; /* listen for url changes, fire one when we start the app up */ window.addEventListener("popstate", this._onURLChanged); this._onURLChanged(); dispatch(actions.doInitialDataLoad(window.location.search)); this.forceUpdate(); } _onURLChanged() { const { dispatch } = this.props; dispatch({ type: "url changed", url: document.location.href }); } render() { const { loading, error, graphRenderCounter } = this.props; return ( {loading ? (
loading cellxgene
) : null} {error ? (
error loading
) : null} {loading ? null : ( {(viewportRef) => ( <> )} )}
); } } export default App;