Merge pull request #531 from orangemug/fix/issue-509

Ability to delete properties completely
This commit is contained in:
Orange Mug
2019-06-21 17:42:09 +01:00
committed by GitHub
7 changed files with 829 additions and 2187 deletions
+797 -2179
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -35,7 +35,7 @@
"lodash.get": "^4.4.2", "lodash.get": "^4.4.2",
"lodash.isequal": "^4.5.0", "lodash.isequal": "^4.5.0",
"lodash.throttle": "^4.1.1", "lodash.throttle": "^4.1.1",
"mapbox-gl": "^0.53.1", "mapbox-gl": "^1.1.0-beta.1",
"mapbox-gl-inspect": "^1.3.1", "mapbox-gl-inspect": "^1.3.1",
"maputnik-design": "github:maputnik/design", "maputnik-design": "github:maputnik/design",
"ol": "^6.0.0-beta.8", "ol": "^6.0.0-beta.8",
+5 -1
View File
@@ -57,6 +57,10 @@ class ColorField extends React.Component {
} }
} }
onChange (v) {
this.props.onChange(v === "" ? undefined : v);
}
render() { render() {
const offset = this.calcPickerOffset() const offset = this.calcPickerOffset()
var currentColor = this.color.object() var currentColor = this.color.object()
@@ -110,7 +114,7 @@ class ColorField extends React.Component {
name={this.props.name} name={this.props.name}
placeholder={this.props.default} placeholder={this.props.default}
value={this.props.value ? this.props.value : ""} value={this.props.value ? this.props.value : ""}
onChange={(e) => this.props.onChange(e.target.value)} onChange={(e) => this.onChange(e.target.value)}
/> />
</div> </div>
} }
+6 -2
View File
@@ -44,6 +44,10 @@ class AutocompleteInput extends React.Component {
this.calcMaxHeight(); this.calcMaxHeight();
} }
onChange (v) {
this.props.onChange(v === "" ? undefined : v);
}
render() { render() {
return <div return <div
ref={(el) => { ref={(el) => {
@@ -68,8 +72,8 @@ class AutocompleteInput extends React.Component {
value={this.props.value} value={this.props.value}
items={this.props.options} items={this.props.options}
getItemValue={(item) => item[0]} getItemValue={(item) => item[0]}
onSelect={v => this.props.onChange(v)} onSelect={v => this.onChange(v)}
onChange={(e, v) => this.props.onChange(v)} onChange={(e, v) => this.onChange(v)}
shouldItemRender={(item, value="") => { shouldItemRender={(item, value="") => {
if (typeof(value) === "string") { if (typeof(value) === "string") {
return item[0].toLowerCase().indexOf(value.toLowerCase()) > -1 return item[0].toLowerCase().indexOf(value.toLowerCase()) > -1
+14 -2
View File
@@ -16,13 +16,25 @@ class FontInput extends React.Component {
} }
get values() { get values() {
return this.props.value || this.props.default.slice(1) || [] const out = this.props.value || this.props.default.slice(1) || [""];
// Always put a "" in the last field to you can keep adding entries
if (out[out.length-1] !== ""){
return out.concat("");
}
else {
return out;
}
} }
changeFont(idx, newValue) { changeFont(idx, newValue) {
const changedValues = this.values.slice(0) const changedValues = this.values.slice(0)
changedValues[idx] = newValue changedValues[idx] = newValue
this.props.onChange(changedValues) const filteredValues = changedValues
.filter(v => v !== undefined)
.filter(v => v !== "")
this.props.onChange(filteredValues);
} }
render() { render() {
+1 -1
View File
@@ -20,7 +20,7 @@ class InputBlock extends React.Component {
onChange(e) { onChange(e) {
const value = e.target.value const value = e.target.value
return this.props.onChange(value === "" ? null: value) return this.props.onChange(value === "" ? undefined : value)
} }
render() { render() {
+5 -1
View File
@@ -31,7 +31,11 @@ export function changeProperty(layer, group, property, newValue) {
if(newValue === undefined) { if(newValue === undefined) {
if(group) { if(group) {
const newLayer = { const newLayer = {
...layer ...layer,
// Change object so the diff works in ./src/components/map/MapboxGlMap.jsx
[group]: {
...layer[group]
}
}; };
delete newLayer[group][property]; delete newLayer[group][property];