Only update style if it is valid

This commit is contained in:
Lukas Martinelli 2016-12-29 22:00:49 +01:00
parent 3be3a716d4
commit 1f1a919c77

View file

@ -10,6 +10,8 @@ import LayerEditor from './layers/LayerEditor'
import Toolbar from './Toolbar' import Toolbar from './Toolbar'
import AppLayout from './AppLayout' import AppLayout from './AppLayout'
import GlSpec from 'mapbox-gl-style-spec/reference/latest.js'
import validateStyleMin from 'mapbox-gl-style-spec/lib/validate_style.min'
import style from '../libs/style.js' import style from '../libs/style.js'
import { loadDefaultStyle, StyleStore } from '../libs/stylestore' import { loadDefaultStyle, StyleStore } from '../libs/stylestore'
import { ApiStyleStore } from '../libs/apistore' import { ApiStyleStore } from '../libs/apistore'
@ -71,9 +73,14 @@ export default class App extends React.Component {
} }
onStyleChanged(newStyle) { onStyleChanged(newStyle) {
const errors = validateStyleMin(newStyle, GlSpec)
if(errors.length === 0) {
this.revisionStore.addRevision(newStyle) this.revisionStore.addRevision(newStyle)
this.saveStyle(newStyle) this.saveStyle(newStyle)
this.setState({ mapStyle: newStyle }) this.setState({ mapStyle: newStyle })
} else {
errors.forEach(err => console.error(err.message))
}
} }
onUndo() { onUndo() {