UNPKG

terriajs

Version:

Geospatial data visualization platform.

52 lines (45 loc) 2.21 kB
'use strict'; import SummaryConcept from './SummaryConcept/SummaryConcept'; import Concept from './Concept'; import ObserveModelMixin from '../../ObserveModelMixin'; import SummaryConceptModel from '../../../Map/SummaryConcept'; import React from 'react'; import createReactClass from 'create-react-class'; import PropTypes from 'prop-types'; import Styles from './concept-viewer.scss'; const ConceptViewer = createReactClass({ displayName: 'ConceptViewer', mixins: [ObserveModelMixin], propTypes: { item: PropTypes.object.isRequired }, render() { // All non-additive-conditions go in a single section. (If there are none, don't show a <div class=section> so we don't get an extra padding.) // Each additive-condition goes in its own section. const nonSummaryConcept = this.props.item.concepts.filter(concept => concept.isVisible && !SummaryConceptModel.prototype.isPrototypeOf(concept)); return ( <div className={Styles.root}> <If condition={nonSummaryConcept.length > 0}> <div className={Styles.section}> <For each="concept" index="i" of={nonSummaryConcept}> <div className={Styles.inner} key={i}> <ul className={Styles.childrenList}> <Concept concept={concept} isLoading={this.props.item.isLoading}/> </ul> </div> </For> </div> </If> <For each="concept" index="i" of={this.props.item.concepts.filter(concept => concept.isVisible && SummaryConceptModel.prototype.isPrototypeOf(concept))}> <div className={Styles.section} key={i}> <ul className={Styles.childrenList}> <SummaryConcept concept={concept} isLoading={this.props.item.isLoading}/> </ul> </div> </For> </div> ); }, }); module.exports = ConceptViewer;