diff --git a/app/static/app/js/components/LayersControlAnnotations.jsx b/app/static/app/js/components/LayersControlAnnotations.jsx index 3d0bc601..a6ba2977 100644 --- a/app/static/app/js/components/LayersControlAnnotations.jsx +++ b/app/static/app/js/components/LayersControlAnnotations.jsx @@ -115,8 +115,10 @@ export default class LayersControlAnnotations extends React.Component { componentDidUpdate(prevProps, prevState){ if (prevState.visible !== this.state.visible){ this.annRefs.forEach(ann => { - let visible = this.state.visible ? ann.state.visible : false; - PluginsAPI.Map.toggleAnnotation(ann.props.layer, visible); + if (ann){ + let visible = this.state.visible ? ann.state.visible : false; + PluginsAPI.Map.toggleAnnotation(ann.props.layer, visible); + } }); } } diff --git a/app/static/app/js/components/LayersControlLayer.jsx b/app/static/app/js/components/LayersControlLayer.jsx index c614f8e4..c158287d 100644 --- a/app/static/app/js/components/LayersControlLayer.jsx +++ b/app/static/app/js/components/LayersControlLayer.jsx @@ -16,13 +16,15 @@ export default class LayersControlLayer extends React.Component { layer: null, expanded: false, map: null, - overlay: false + overlay: false, + separator: false, }; static propTypes = { layer: PropTypes.object.isRequired, expanded: PropTypes.bool, map: PropTypes.object.isRequired, - overlay: PropTypes.bool + overlay: PropTypes.bool, + separator: PropTypes.bool }; constructor(props){ @@ -340,7 +342,7 @@ export default class LayersControlLayer extends React.Component { return (
- {!this.props.overlay ? :
} + {!this.props.overlay ? :
}
{meta.name}
{meta.raster ? : ""}
@@ -414,6 +416,8 @@ export default class LayersControlLayer extends React.Component { asset={this.asset} exportParams={this.getLayerParams} dropUp /> + + {this.props.separator ?
: ""}
: ""} ); diff --git a/app/static/app/js/components/LayersControlPanel.jsx b/app/static/app/js/components/LayersControlPanel.jsx index 9abf30aa..ac21accd 100644 --- a/app/static/app/js/components/LayersControlPanel.jsx +++ b/app/static/app/js/components/LayersControlPanel.jsx @@ -84,7 +84,13 @@ export default class LayersControlPanel extends React.Component { const m_a = a[Symbol.for("meta")] || {}; const m_b = b[Symbol.for("meta")] || {}; return m_a.type > m_b.type ? -1 : 1; - }).map((layer, i) => )} + }).map((layer, i) => )} ); }; diff --git a/app/static/app/js/components/Map.jsx b/app/static/app/js/components/Map.jsx index 673d2aff..4d3a177b 100644 --- a/app/static/app/js/components/Map.jsx +++ b/app/static/app/js/components/Map.jsx @@ -687,7 +687,7 @@ _('Example:'), }).catch(e => { this.setState({showLoading: false, error: e.message}); }); - + PluginsAPI.Map.triggerDidAddControls({ map: this.map, tiles: tiles, diff --git a/app/static/app/js/components/Toggle.jsx b/app/static/app/js/components/Toggle.jsx index a4ce5baa..a5b79d03 100644 --- a/app/static/app/js/components/Toggle.jsx +++ b/app/static/app/js/components/Toggle.jsx @@ -35,14 +35,16 @@ class Toggle extends React.Component { class Checkbox extends Toggle{ static defaultProps = { trueIcon: "far fa-check-square", - falseIcon: "far fa-square" + falseIcon: "far fa-square", + className: "" } } class ExpandButton extends Toggle{ static defaultProps = { trueIcon: "fa fa-caret-down", - falseIcon: "fa fa-caret-right" + falseIcon: "fa fa-caret-right", + className: "" } } diff --git a/app/static/app/js/css/LayersControlLayer.scss b/app/static/app/js/css/LayersControlLayer.scss index f9f59f43..63e91504 100644 --- a/app/static/app/js/css/LayersControlLayer.scss +++ b/app/static/app/js/css/LayersControlLayer.scss @@ -21,6 +21,15 @@ padding-right: 6px; } + .expand-layer{ + margin-right: 3px; + } + + hr.layer-separator{ + margin-top: 6px; + margin-left: 8px; + } + select, input{ height: auto; padding: 4px;