diff --git a/src/fields/enum.jsx b/src/fields/enum.jsx
new file mode 100644
index 00000000..1b6a22ba
--- /dev/null
+++ b/src/fields/enum.jsx
@@ -0,0 +1,18 @@
+import React from 'react'
+import { Select, Input } from 'rebass'
+
+export default class EnumField extends React.Component {
+ static propTypes = {
+ name: React.PropTypes.string.isRequired,
+ values: React.PropTypes.array.isRequired,
+ value: React.PropTypes.string.isRequired,
+ doc: React.PropTypes.string,
+ }
+
+ render() {
+ const options = this.props.values.map(val => {
+ return {children: val, value: val}
+ })
+ return
+ }
+}
diff --git a/src/layers/editor.jsx b/src/layers/editor.jsx
index 023ba206..d0d4e69a 100644
--- a/src/layers/editor.jsx
+++ b/src/layers/editor.jsx
@@ -91,11 +91,15 @@ export class LayerEditor extends React.Component {
}
if (type === "line") {
- return
+ return
}
if (type === "symbol") {
- return
+ return
}
return
diff --git a/src/layers/fill.jsx b/src/layers/fill.jsx
index 6e4f9c8a..1a9623d3 100644
--- a/src/layers/fill.jsx
+++ b/src/layers/fill.jsx
@@ -1,10 +1,11 @@
import React from 'react'
+import Immutable from 'immutable'
import { Checkbox, Input } from 'rebass'
import PureRenderMixin from 'react-addons-pure-render-mixin';
export default class FillLayer extends React.Component {
static propTypes = {
- layer: React.PropTypes.object.isRequired,
+ layer: React.PropTypes.instanceOf(Immutable.Map).isRequired,
onPaintChanged: React.PropTypes.func.isRequired
}
diff --git a/src/layers/line.jsx b/src/layers/line.jsx
index 898f4f9c..da4838a6 100644
--- a/src/layers/line.jsx
+++ b/src/layers/line.jsx
@@ -1,7 +1,39 @@
import React from 'react'
+import Immutable from 'immutable'
+import spec from 'mapbox-gl-style-spec/reference/latest.min.js'
+import EnumField from '../fields/enum.jsx'
export default class LineLayer extends React.Component {
+ static propTypes = {
+ layer: React.PropTypes.instanceOf(Immutable.Map).isRequired,
+ }
+
render() {
- return
+ const enumFieldFromType = (key, field) => {
+ if(field.type === 'enum') {
+ return
+ }
+ }
+
+ const layoutLineFields = () => {
+ const type = spec["layout_line"]
+ return Object.keys(type).map(key => {
+ return enumFieldFromType(key, type[key])
+ })
+ }
+
+ const paintLineFields = () => {
+ const type = spec["paint_line"]
+ return Object.keys(type).map(key => {
+ return enumFieldFromType(key, type[key])
+ })
+ }
+
+ return {layoutLineFields()}{paintLineFields()}
}
}