Skip to content

Commit

Permalink
Fix turf v5 compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
supersonicclay committed Oct 14, 2018
1 parent 0712588 commit d00a828
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 10 deletions.
30 changes: 22 additions & 8 deletions modules/core/src/lib/mode-handlers/mode-handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,17 @@ export class ModeHandler {
return this.featureCollection;
}

getSelectedGeometry(): ?Geometry {
getSelectedFeature(): ?Feature {
if (this._selectedFeatureIndexes.length === 1) {
return this.featureCollection.getObject().features[this._selectedFeatureIndexes[0]].geometry;
return this.featureCollection.getObject().features[this._selectedFeatureIndexes[0]];
}
return null;
}

getSelectedGeometry(): ?Geometry {
const feature = this.getSelectedFeature();
if (feature) {
return feature.geometry;
}
return null;
}
Expand Down Expand Up @@ -163,12 +171,13 @@ export class ModeHandler {
}

getAddFeatureOrBooleanPolygonAction(geometry: Polygon) {
const selectedGeometry = this.getSelectedGeometry();
const selectedFeature = this.getSelectedFeature();
const modeConfig = this.getModeConfig();
if (modeConfig && modeConfig.booleanOperation) {
if (
!selectedGeometry ||
(selectedGeometry.type !== 'Polygon' && selectedGeometry.type !== 'MultiPolygon')
!selectedFeature ||
(selectedFeature.geometry.type !== 'Polygon' &&
selectedFeature.geometry.type !== 'MultiPolygon')
) {
// eslint-disable-next-line no-console,no-undef
console.warn(
Expand All @@ -177,13 +186,18 @@ export class ModeHandler {
return null;
}

const feature = {
type: 'Feature',
geometry
};

let updatedGeometry;
if (modeConfig.booleanOperation === 'union') {
updatedGeometry = turfUnion(selectedGeometry, geometry);
updatedGeometry = turfUnion(selectedFeature, feature);
} else if (modeConfig.booleanOperation === 'difference') {
updatedGeometry = turfDifference(selectedGeometry, geometry);
updatedGeometry = turfDifference(selectedFeature, feature);
} else if (modeConfig.booleanOperation === 'intersection') {
updatedGeometry = turfIntersect(selectedGeometry, geometry);
updatedGeometry = turfIntersect(selectedFeature, feature);
} else {
// eslint-disable-next-line no-console,no-undef
console.warn(`Invalid booleanOperation ${modeConfig.booleanOperation}`);
Expand Down
4 changes: 2 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,7 @@
seer "^0.2.4"
viewport-mercator-project "^5.2.0"

"@deck.gl/experimental-layers@>=6.0.3":
"@deck.gl/experimental-layers@>=6.1.1":
version "6.1.1"
resolved "https://registry.yarnpkg.com/@deck.gl/experimental-layers/-/experimental-layers-6.1.1.tgz#daeb1974ac0b47cb59dec41b4e068bbce76c200b"
dependencies:
Expand Down Expand Up @@ -2565,7 +2565,7 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"

deck.gl@>=6.0.3:
deck.gl@>=6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/deck.gl/-/deck.gl-6.1.1.tgz#a31e2eb0e0f2d411dcf717393f8ef084a586831d"
dependencies:
Expand Down

0 comments on commit d00a828

Please sign in to comment.