From 9e5f0c17366dac89e4b98802ce10504ceaa35d3d Mon Sep 17 00:00:00 2001 From: Lukas Martinelli Date: Thu, 22 Dec 2016 13:40:23 +0100 Subject: [PATCH] Add layer settings component --- src/components/layers/LayerEditor.jsx | 16 +++++++- src/components/layers/LayerListItem.jsx | 7 +++- src/components/layers/LayerSettings.jsx | 51 +++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 src/components/layers/LayerSettings.jsx diff --git a/src/components/layers/LayerEditor.jsx b/src/components/layers/LayerEditor.jsx index f294940b..e747393a 100644 --- a/src/components/layers/LayerEditor.jsx +++ b/src/components/layers/LayerEditor.jsx @@ -4,6 +4,7 @@ import SourceEditor from './SourceEditor' import FilterEditor from '../filter/FilterEditor' import PropertyGroup from '../fields/PropertyGroup' import LayerEditorGroup from './LayerEditorGroup' +import LayerSettings from './LayerSettings' import layout from '../../config/layout.json' import { margins, fontSizes } from '../../config/scales' @@ -42,6 +43,7 @@ export default class LayerEditor extends React.Component { editorGroups[group.title] = true }) editorGroups['Source'] = true + editorGroups['Settings'] = true this.state = { editorGroups } } @@ -142,9 +144,21 @@ export default class LayerEditor extends React.Component { } + const settingsGroup = + + + return
- {propertyGroups} + {settingsGroup} {dataGroup} + {propertyGroups}
} } diff --git a/src/components/layers/LayerListItem.jsx b/src/components/layers/LayerListItem.jsx index 5483b599..b9e62860 100644 --- a/src/components/layers/LayerListItem.jsx +++ b/src/components/layers/LayerListItem.jsx @@ -21,7 +21,12 @@ class LayerTypeDragHandle extends React.Component { render() { return } } diff --git a/src/components/layers/LayerSettings.jsx b/src/components/layers/LayerSettings.jsx new file mode 100644 index 00000000..32f74aff --- /dev/null +++ b/src/components/layers/LayerSettings.jsx @@ -0,0 +1,51 @@ +import React from 'react' +import GlSpec from 'mapbox-gl-style-spec/reference/latest.min.js' +import InputBlock from '../inputs/InputBlock' +import StringInput from '../inputs/StringInput' +import SelectInput from '../inputs/SelectInput' + +import colors from '../../config/colors' +import { margins } from '../../config/scales' + + +class LayerSettings extends React.Component { + static propTypes = { + id: React.PropTypes.string.isRequired, + type: React.PropTypes.oneOf(Object.keys(GlSpec.layer.type.values)).isRequired, + onIdChange: React.PropTypes.func.isRequired, + onTypeChange: React.PropTypes.func.isRequired, + } + + render() { + return
+ + + + + + +
+ } +} + +export default LayerSettings