Skip to content

Commit

Permalink
[Fix] hide pinned selection outline when layer is hidden (#2181)
Browse files Browse the repository at this point in the history
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Co-authored-by: Jacob Wasilkowski <4933392+jwasilgeo@users.noreply.github.com>
  • Loading branch information
igorDykhta and jwasilgeo committed Apr 4, 2023
1 parent d441d5f commit 8589730
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 3 deletions.
1 change: 1 addition & 0 deletions src/layers/src/arc-layer/arc-layer.ts
Expand Up @@ -285,6 +285,7 @@ export default class ArcLayer extends Layer {
? [
new DeckArcLayer({
...this.getDefaultHoverLayerProps(),
visible: defaultLayerProps.visible,
data: [hoveredObject],
widthScale,
getSourceColor: this.config.highlightColor,
Expand Down
6 changes: 5 additions & 1 deletion src/layers/src/cluster-layer/cluster-layer.ts
Expand Up @@ -115,12 +115,15 @@ export default class ClusterLayer extends AggregationLayer {
...gpuFilter.filterValueUpdateTriggers
}
};

const defaultLayerProps = this.getDefaultDeckLayerProps(opts);

const {_filterData: filterData, ...clusterData} = data;
const hoveredObject = this.hasHoveredObject(objectHovered);

return [
new DeckGLClusterLayer({
...this.getDefaultDeckLayerProps(opts),
...defaultLayerProps,
...clusterData,
filterData,

Expand Down Expand Up @@ -149,6 +152,7 @@ export default class ClusterLayer extends AggregationLayer {
? [
new ScatterplotLayer<{radius: number}>({
id: `${this.id}-hovered`,
visible: defaultLayerProps.visible,
data: [hoveredObject],
getFillColor: this.config.highlightColor,
getRadius: d => d.radius,
Expand Down
2 changes: 2 additions & 0 deletions src/layers/src/geojson-layer/geojson-layer.ts
Expand Up @@ -457,11 +457,13 @@ export default class GeoJsonLayer extends Layer {
: {})
}
}),
// hover layer
...(hoveredObject && !visConfig.enable3d
? [
new DeckGLGeoJsonLayer({
...this.getDefaultHoverLayerProps(),
...layerProps,
visible: defaultLayerProps.visible,
wrapLongitude: false,
data: [hoveredObject],
getLineWidth: data.getLineWidth,
Expand Down
4 changes: 3 additions & 1 deletion src/layers/src/grid-layer/grid-layer.ts
Expand Up @@ -115,14 +115,15 @@ export default class GridLayer extends AggregationLayer {
renderLayer(opts) {
const {data, objectHovered, mapState} = opts;

const defaultAggregationLayerProps = this.getDefaultAggregationLayerProp(opts);
const zoomFactor = this.getZoomFactor(mapState);
const {visConfig} = this.config;
const cellSize = visConfig.worldUnitSize * 1000;
const hoveredObject = this.hasHoveredObject(objectHovered);

return [
new EnhancedGridLayer({
...this.getDefaultAggregationLayerProp(opts),
...defaultAggregationLayerProps,
...data,
wrapLongitude: false,
cellSize
Expand All @@ -133,6 +134,7 @@ export default class GridLayer extends AggregationLayer {
? [
new GeoJsonLayer({
...this.getDefaultHoverLayerProps(),
visible: defaultAggregationLayerProps.visible,
wrapLongitude: false,
data: [
pointToPolygonGeo({
Expand Down
2 changes: 2 additions & 0 deletions src/layers/src/h3-hexagon-layer/h3-hexagon-layer.ts
Expand Up @@ -339,10 +339,12 @@ export default class HexagonIdLayer extends Layer {
}
}
}),
// hover layer
...(hoveredObject && !config.sizeField
? [
new GeoJsonLayer({
...this.getDefaultHoverLayerProps(),
visible: defaultLayerProps.visible,
data: [idToPolygonGeo(hoveredObject)],
getLineColor: config.highlightColor,
lineWidthScale: DEFAULT_LINE_SCALE_VALUE * zoomFactor,
Expand Down
5 changes: 4 additions & 1 deletion src/layers/src/hexagon-layer/hexagon-layer.ts
Expand Up @@ -123,14 +123,16 @@ export default class HexagonLayer extends AggregationLayer {

renderLayer(opts) {
const {data, objectHovered, mapState} = opts;

const defaultAggregationLayerProps = this.getDefaultAggregationLayerProp(opts);
const zoomFactor = this.getZoomFactor(mapState);
const {visConfig} = this.config;
const radius = visConfig.worldUnitSize * 1000;
const hoveredObject = this.hasHoveredObject(objectHovered);

return [
new EnhancedHexagonLayer({
...this.getDefaultAggregationLayerProp(opts),
...defaultAggregationLayerProps,
...data,
wrapLongitude: false,
radius
Expand All @@ -141,6 +143,7 @@ export default class HexagonLayer extends AggregationLayer {
? [
new GeoJsonLayer({
...this.getDefaultHoverLayerProps(),
visible: defaultAggregationLayerProps.visible,
wrapLongitude: false,
data: [
hexagonToPolygonGeo(hoveredObject, {}, radius * visConfig.coverage, mapState)
Expand Down
2 changes: 2 additions & 0 deletions src/layers/src/icon-layer/icon-layer.ts
Expand Up @@ -376,12 +376,14 @@ export default class IconLayer extends Layer {
extensions
}),

// hover layer
...(hoveredObject
? [
// @ts-expect-error SvgIconLayerProps needs getIcon Field
new SvgIconLayer({
...this.getDefaultHoverLayerProps(),
...layerProps,
visible: defaultLayerProps.visible,
data: [hoveredObject],
parameters,
getPosition: data.getPosition,
Expand Down
1 change: 1 addition & 0 deletions src/layers/src/point-layer/point-layer.ts
Expand Up @@ -382,6 +382,7 @@ export default class PointLayer extends Layer {
new ScatterplotLayer({
...this.getDefaultHoverLayerProps(),
...layerProps,
visible: defaultLayerProps.visible,
data: [hoveredObject],
getLineColor: this.config.highlightColor,
getFillColor: this.config.highlightColor,
Expand Down

0 comments on commit 8589730

Please sign in to comment.