MCPcopy Create free account
hub / github.com/visgl/react-map-gl / updateLayer

Function updateLayer

modules/react-mapbox/src/components/layer.ts:20–68  ·  view source on GitHub ↗
(map: MapInstance, id: string, props: LayerProps, prevProps: LayerProps)

Source from the content-addressed store, hash-verified

18
19/* eslint-disable complexity, max-statements */
20function updateLayer(map: MapInstance, id: string, props: LayerProps, prevProps: LayerProps) {
21 assert(props.id === prevProps.id, 'layer id changed');
22 assert(props.type === prevProps.type, 'layer type changed');
23
24 if (props.type === 'custom' || prevProps.type === 'custom') {
25 return;
26 }
27
28 // @ts-ignore filter does not exist in some Layer types
29 const {layout = {}, paint = {}, filter, minzoom, maxzoom, beforeId} = props;
30
31 if (beforeId !== prevProps.beforeId) {
32 map.moveLayer(id, beforeId);
33 }
34 if (layout !== prevProps.layout) {
35 const prevLayout = prevProps.layout || {};
36 for (const key in layout) {
37 if (!deepEqual(layout[key], prevLayout[key])) {
38 map.setLayoutProperty(id, key as any, layout[key]);
39 }
40 }
41 for (const key in prevLayout) {
42 if (!layout.hasOwnProperty(key)) {
43 map.setLayoutProperty(id, key as any, undefined);
44 }
45 }
46 }
47 if (paint !== prevProps.paint) {
48 const prevPaint = prevProps.paint || {};
49 for (const key in paint) {
50 if (!deepEqual(paint[key], prevPaint[key])) {
51 map.setPaintProperty(id, key as any, paint[key]);
52 }
53 }
54 for (const key in prevPaint) {
55 if (!paint.hasOwnProperty(key)) {
56 map.setPaintProperty(id, key as any, undefined);
57 }
58 }
59 }
60
61 // @ts-ignore filter does not exist in some Layer types
62 if (!deepEqual(filter, prevProps.filter)) {
63 map.setFilter(id, filter);
64 }
65 if (minzoom !== prevProps.minzoom || maxzoom !== prevProps.maxzoom) {
66 map.setLayerZoomRange(id, minzoom, maxzoom);
67 }
68}
69
70function createLayer(map: MapInstance, id: string, props: LayerProps) {
71 // @ts-ignore

Callers 1

LayerFunction · 0.70

Calls 2

deepEqualFunction · 0.90
assertFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…