From 518cd93535b4a12c3f5ffa6c9c62bbbfc0f87879 Mon Sep 17 00:00:00 2001 From: Nicolas Brichet <32258950+brichet@users.noreply.github.com> Date: Tue, 2 Jul 2024 13:17:58 +0200 Subject: [PATCH] Fix new layer in map (#26) * Fix the layer position in tree * Do not update a layer not in the tree * Fix the layer position in Map after layerTree update * linter --- packages/base/src/mainview/mainview.tsx | 8 ++++++-- packages/schema/src/model.ts | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/base/src/mainview/mainview.tsx b/packages/base/src/mainview/mainview.tsx index 5e9a07347..39b402804 100644 --- a/packages/base/src/mainview/mainview.tsx +++ b/packages/base/src/mainview/mainview.tsx @@ -293,7 +293,7 @@ export class MainView extends React.Component { const currentLayerIds = this._Map.getStyle().layers.map(layer => layer.id); let beforeId: string | undefined = undefined; if (!(index === undefined) && index < currentLayerIds.length) { - beforeId = currentLayerIds[index + 1]; + beforeId = currentLayerIds[index]; } this._Map.moveLayer(id, beforeId); } @@ -373,7 +373,11 @@ export class MainView extends React.Component { if (!layer) { this.removeLayer(change.id); } else { - this.updateLayer(change.id, layer); + if ( + JupyterGISModel.getOrderedLayerIds(this._model).includes(change.id) + ) { + this.updateLayer(change.id, layer); + } } }); } diff --git a/packages/schema/src/model.ts b/packages/schema/src/model.ts index 01bd75ede..ba4d70cef 100644 --- a/packages/schema/src/model.ts +++ b/packages/schema/src/model.ts @@ -332,7 +332,7 @@ export class JupyterGISModel implements IJupyterGISModel { this._sharedModel.updateLayerTreeItem(mainGroupIndex, mainGroup); } else { this.sharedModel.addLayerTreeItem( - index ?? this.getLayerTree.length, + index ?? this.getLayerTree().length, item ); }