Skip to content

Commit

Permalink
fix: delete bug that deletes necessary layer on reearth/core (#484)
Browse files Browse the repository at this point in the history
fix: delete bug that deletes unneccesary layer
  • Loading branch information
keiya01 committed Feb 22, 2023
1 parent 867238c commit a0f48fa
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 2 deletions.
28 changes: 28 additions & 0 deletions src/core/Map/Layers/hooks.test.ts
Expand Up @@ -385,6 +385,34 @@ test("add, replace, delete", () => {
]);
});

test("delete", () => {
const layers: Layer[] = [{ id: "x", type: "simple", title: "X" }];

const { result, rerender } = renderHook(() => {
const ref = useRef<Ref>(null);
const { flattenedLayers } = useHooks({ layers, ref });
return { ref, flattenedLayers };
});

result.current.ref.current?.add({
type: "simple",
title: "a",
});
const lb = result.current.ref.current?.add({
type: "simple",
title: "b",
});

result.current.ref.current?.deleteLayer(lb?.id || "");

rerender();

expect(result.current.flattenedLayers).toEqual([
{ type: "simple", id: "x", title: "X" },
{ type: "simple", id: expect.any(String), title: "a" },
]);
});

test("override", () => {
const dataValue = {
type: "Feature",
Expand Down
4 changes: 2 additions & 2 deletions src/core/Map/Layers/hooks.ts
Expand Up @@ -374,8 +374,8 @@ export default function useHooks({
lazyLayerMap.delete(id);
showLayer(id);
});
tempLayersRef.current = tempLayersRef.current.filter(l =>
deleted.find(ll => ll.id === l.id),
tempLayersRef.current = tempLayersRef.current.filter(
l => !deleted.find(ll => ll.id === l.id),
);
return newLayers;
});
Expand Down

0 comments on commit a0f48fa

Please sign in to comment.