UNPKG

terriajs

Version:

Geospatial data visualization platform.

58 lines (51 loc) 1.45 kB
import React from "react"; import PropTypes from "prop-types"; import { observer } from "mobx-react"; import Styles from "./terria-viewer-wrapper.scss"; import Splitter from "./Splitter"; // eslint-disable-next-line no-unused-vars import TerriaViewer from "../../ViewModels/TerriaViewer"; /** * @typedef {object} Props * @prop {Terria} terria * @prop {ViewState} viewState * * @extends {React.Component<Props>} */ @observer class TerriaViewerWrapper extends React.Component { static propTypes = { terria: PropTypes.object.isRequired, viewState: PropTypes.object.isRequired }; /** * @argument {HTMLDivElement} container */ containerRef = (container) => { this.props.terria.mainViewer.attached && this.props.terria.mainViewer.detach(); if (container !== null) { this.props.terria.mainViewer.attach(container); } }; componentWillUnmount() { this.props.terria.mainViewer.attached && this.props.terria.mainViewer.detach(); } render() { return ( <aside className={Styles.container}> <div className={Styles.mapPlaceholder}> Loading the map, please wait... </div> <Splitter terria={this.props.terria} viewState={this.props.viewState} /> <div id="cesiumContainer" className={Styles.cesiumContainer} ref={this.containerRef} /> </aside> ); } } module.exports = TerriaViewerWrapper;