@mapcomponents/react-maplibre 0.1.17 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +29 -7
  2. package/coverage/clover.xml +218 -203
  3. package/coverage/coverage-final.json +6 -6
  4. package/coverage/lcov-report/index.html +44 -44
  5. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.js.html +1 -1
  6. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  7. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.js.html +1 -1
  8. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  9. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.js.html +1 -1
  10. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  11. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.js.html +1 -1
  12. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  13. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.js.html +1 -1
  14. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  15. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.js.html +1 -1
  16. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
  17. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  18. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js.html +57 -15
  19. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +15 -15
  20. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js.html +1 -1
  21. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlLayer/MlLayer.js.html +1 -1
  23. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.js.html +1 -1
  25. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.js.html +1 -1
  27. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  28. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  29. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  30. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  31. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlMarker/MlMarker.js.html +1 -1
  33. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.js.html +1 -1
  35. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  36. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.js.html +1 -1
  37. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  39. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  40. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  41. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +261 -111
  43. package/coverage/lcov-report/src/components/MlShareMapState/index.html +9 -9
  44. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
  45. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  47. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  48. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  49. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  50. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.js.html +50 -14
  51. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +15 -15
  52. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  53. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.js.html +35 -89
  55. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +17 -17
  56. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.js.html +1 -1
  57. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  58. package/coverage/lcov-report/src/hooks/index.html +12 -12
  59. package/coverage/lcov-report/src/hooks/useMap.js.html +40 -28
  60. package/coverage/lcov-report/src/hooks/useMapState.js.html +34 -34
  61. package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
  62. package/coverage/lcov-report/src/i18n.js.html +1 -1
  63. package/coverage/lcov-report/src/index.html +1 -1
  64. package/coverage/lcov-report/src/translations/english.js.html +1 -1
  65. package/coverage/lcov-report/src/translations/german.js.html +1 -1
  66. package/coverage/lcov-report/src/translations/index.html +1 -1
  67. package/coverage/lcov.info +396 -357
  68. package/dist/index.esm.js +103 -70
  69. package/dist/index.esm.js.map +1 -1
  70. package/package.json +1 -1
  71. package/scripts/build-catalogue-markdown-docs.js +5 -3
  72. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +26 -21
  73. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +3 -3
  74. package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.de.md +2 -2
  75. package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.en.md +3 -0
  76. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +2 -2
  77. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +21 -7
  78. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +22 -7
  79. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.js +10 -1
  80. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +2 -2
  81. package/src/components/MlShareMapState/MlShareMapState.js +138 -88
  82. package/src/components/MlShareMapState/MlShareMapState.stories.js +79 -29
  83. package/src/components/MlVectorTileLayer/MlVectorTileLayer.js +18 -6
  84. package/src/components/MlWmsLayer/MlWmsLayer.js +16 -34
  85. package/src/hooks/useMap.js +4 -0
package/dist/index.esm.js CHANGED
@@ -331,7 +331,7 @@ var MapLibreGlWrapper = function MapLibreGlWrapper(props) {
331
331
  /**
332
332
  * Maps layerIds to layerState in JSON string form for quick deep comparisons
333
333
  */
334
- layerStateStrings: {},
334
+ layerStateString: "",
335
335
 
336
336
  /**
337
337
  * Previous Version of layerStateString
@@ -345,26 +345,30 @@ var MapLibreGlWrapper = function MapLibreGlWrapper(props) {
345
345
  * @returns object
346
346
  */
347
347
  buildLayerObject: function buildLayerObject(layer) {
348
- var _layer$paint, _layer$layout;
349
-
350
348
  //if (self.baseLayers.indexOf(layer.id) === -1) {
351
- var paint = {};
352
- var values = (_layer$paint = layer.paint) === null || _layer$paint === void 0 ? void 0 : _layer$paint._values;
353
- Object.keys(values || {}).forEach(function (propName) {
354
- paint[propName] = typeof values[propName].value !== "undefined" ? values[propName].value.value : values[propName];
355
- });
356
- var layout = {};
357
- values = (_layer$layout = layer.layout) === null || _layer$layout === void 0 ? void 0 : _layer$layout._values;
358
- Object.keys(values || {}).forEach(function (propName) {
359
- layout[propName] = typeof values[propName].value !== "undefined" ? values[propName].value.value : values[propName];
360
- });
349
+ //let paint = {};
350
+ //let values = layer.paint?._values;
351
+ //Object.keys(values || {}).map((propName) => {
352
+ // paint[propName] =
353
+ // typeof values[propName].value !== "undefined"
354
+ // ? values[propName].value.value
355
+ // : values[propName];
356
+ //});
357
+ //let layout = {};
358
+ //values = layer.layout?._values;
359
+ //Object.keys(values || {}).map((propName) => {
360
+ // layout[propName] =
361
+ // typeof values[propName].value !== "undefined"
362
+ // ? values[propName].value.value
363
+ // : values[propName];
364
+ //});
361
365
  return {
362
366
  id: layer.id,
363
367
  type: layer.type,
364
368
  visible: layer.visibility === "none" ? false : true,
365
- baseLayer: self.baseLayers.indexOf(layer.id) !== -1,
366
- paint: paint,
367
- layout: layout //filter: layers[layerId].filter,
369
+ baseLayer: self.baseLayers.indexOf(layer.id) !== -1 //paint,
370
+ //layout,
371
+ //filter: layers[layerId].filter,
368
372
  //layout: layers[layerId].layout,
369
373
  //maxzoom: layers[layerId].maxzoom,
370
374
  //metadata: layers[layerId].metadata,
@@ -394,9 +398,11 @@ var MapLibreGlWrapper = function MapLibreGlWrapper(props) {
394
398
  */
395
399
  refreshLayerState: function refreshLayerState() {
396
400
  self.wrapper.layerState = self.wrapper.buildLayerObjects();
397
- self.wrapper.layerStateStrings = self.wrapper.layerState.map(function (el) {
398
- return JSON.stringify(el);
399
- });
401
+
402
+ if (JSON.stringify(self.wrapper.layerState) !== self.wrapper.layerStateString) {
403
+ self.wrapper.fire("layerchange");
404
+ self.wrapper.layerStateString = JSON.stringify(self.wrapper.layerState);
405
+ }
400
406
  },
401
407
 
402
408
  /**
@@ -733,16 +739,18 @@ var MapLibreGlWrapper = function MapLibreGlWrapper(props) {
733
739
  self.wrapper.viewportState = self.wrapper.getViewport();
734
740
  self.wrapper.fire("viewportchange");
735
741
  });
742
+ self.map.on("idle", function () {
743
+ self.wrapper.refreshLayerState();
744
+ });
736
745
  self.map.on("data", function () {
737
746
  self.wrapper.refreshLayerState();
738
- self.wrapper.fire("layerchange");
739
747
  });
740
748
 
741
749
  if (typeof props.onReady === "function") {
742
750
  props.onReady(self.map, self);
743
751
  }
744
752
 
745
- case 10:
753
+ case 11:
746
754
  case "end":
747
755
  return _context.stop();
748
756
  }
@@ -1008,7 +1016,12 @@ function useMap(props) {
1008
1016
 
1009
1017
  useEffect(function () {
1010
1018
  var _componentId = componentId.current;
1019
+ console.log("initialize maphook");
1011
1020
  return function () {
1021
+ console.log("cleanup maphook");
1022
+ console.log(_typeof(mapRef.current));
1023
+ console.log(JSON.stringify(mapRef.current.style._order));
1024
+
1012
1025
  if (mapRef.current) {
1013
1026
  mapRef.current.cleanup(_componentId);
1014
1027
  mapRef.current = undefined;
@@ -1381,14 +1394,22 @@ var _transitionToGeojson = function _transitionToGeojson(newGeojson, props, tran
1381
1394
  }, msPerStep);
1382
1395
  };
1383
1396
 
1384
- var getDefaultPaintPropsByType = function getDefaultPaintPropsByType(type) {
1397
+ var getDefaultPaintPropsByType = function getDefaultPaintPropsByType(type, defaultPaintOverrides) {
1385
1398
  switch (type) {
1386
1399
  case "fill":
1400
+ if (defaultPaintOverrides !== null && defaultPaintOverrides !== void 0 && defaultPaintOverrides.fill) {
1401
+ return defaultPaintOverrides.fill;
1402
+ }
1403
+
1387
1404
  return {
1388
1405
  "fill-color": "rgba(10,240,256,0.6)"
1389
1406
  };
1390
1407
 
1391
1408
  case "line":
1409
+ if (defaultPaintOverrides !== null && defaultPaintOverrides !== void 0 && defaultPaintOverrides.line) {
1410
+ return defaultPaintOverrides.line;
1411
+ }
1412
+
1392
1413
  return {
1393
1414
  "line-color": "rgb(100,200,100)",
1394
1415
  "line-width": 5
@@ -1396,6 +1417,10 @@ var getDefaultPaintPropsByType = function getDefaultPaintPropsByType(type) {
1396
1417
 
1397
1418
  case "circle":
1398
1419
  default:
1420
+ if (defaultPaintOverrides !== null && defaultPaintOverrides !== void 0 && defaultPaintOverrides.circle) {
1421
+ return defaultPaintOverrides.circle;
1422
+ }
1423
+
1399
1424
  return {
1400
1425
  "circle-color": "#44aaaa",
1401
1426
  "circle-stroke-color": "#fff",
@@ -1473,10 +1498,12 @@ var MlGeoJsonLayer = function MlGeoJsonLayer(props) {
1473
1498
  useEffect(function () {
1474
1499
  if (!mapHook.map || !initializedRef.current) return;
1475
1500
 
1476
- for (var key in props.paint) {
1477
- mapHook.map.setPaintProperty(layerId.current, key, props.paint[key]);
1501
+ var _paint = props.paint || getDefaultPaintPropsByType(layerTypeRef.current, props.defaultPaintOverrides);
1502
+
1503
+ for (var key in _paint) {
1504
+ mapHook.map.setPaintProperty(layerId.current, key, _paint[key]);
1478
1505
  }
1479
- }, [props.paint, mapHook.map, props.mapId]);
1506
+ }, [props.paint, mapHook.map, props.mapId, props.defaultPaintOverrides]);
1480
1507
  var transitionToGeojson = useCallback(function (newGeojson) {
1481
1508
  _transitionToGeojson(newGeojson, props, transitionGeojsonCommonDataRef, transitionGeojsonDataRef, transitionInProgressRef, oldGeojsonRef, msPerStep, currentTransitionStepRef, mapHook.map, layerId.current, transitionTimeoutRef);
1482
1509
  }, [props, mapHook.map]);
@@ -1506,27 +1533,27 @@ var MlGeoJsonLayer = function MlGeoJsonLayer(props) {
1506
1533
  }
1507
1534
 
1508
1535
  layerTypeRef.current = props.type || getDefaulLayerTypeByGeometry(props.geojson);
1509
- mapHook.map.addLayer({
1536
+ mapHook.map.addLayer(_objectSpread2({
1510
1537
  id: layerId.current,
1511
1538
  source: {
1512
1539
  type: "geojson",
1513
1540
  data: geojson
1514
1541
  },
1515
1542
  type: layerTypeRef.current,
1516
- paint: props.paint || getDefaultPaintPropsByType(layerTypeRef.current),
1543
+ paint: props.paint || getDefaultPaintPropsByType(layerTypeRef.current, props.defaultPaintOverrides),
1517
1544
  layout: props.layout || {}
1518
- }, props.insertBeforeLayer, mapHook.componentId);
1545
+ }, props.options), props.insertBeforeLayer, mapHook.componentId);
1519
1546
 
1520
1547
  if (typeof props.onHover !== "undefined") {
1521
- mapHook.map.on("mousemove", mapHook.componentId, props.onHover, mapHook.componentId);
1548
+ mapHook.map.on("mousemove", layerId.current, props.onHover, mapHook.componentId);
1522
1549
  }
1523
1550
 
1524
1551
  if (typeof props.onClick !== "undefined") {
1525
- mapHook.map.on("click", mapHook.componentId, props.onClick, mapHook.componentId);
1552
+ mapHook.map.on("click", layerId.current, props.onClick, mapHook.componentId);
1526
1553
  }
1527
1554
 
1528
1555
  if (typeof props.onLeave !== "undefined") {
1529
- mapHook.map.on("mouseleave", mapHook.componentId, props.onLeave, mapHook.componentId);
1556
+ mapHook.map.on("mouseleave", layerId.current, props.onLeave, mapHook.componentId);
1530
1557
  }
1531
1558
 
1532
1559
  if (props.type === "line" && typeof props.transitionTime !== "undefined" && typeof props.geojson.geometry !== "undefined") {
@@ -1580,6 +1607,16 @@ MlGeoJsonLayer.propTypes = {
1580
1607
  */
1581
1608
  paint: PropTypes.object,
1582
1609
 
1610
+ /**
1611
+ * Javascript object with optional properties "fill", "line", "circle" to override implicit layer type default paint properties.
1612
+ */
1613
+ defaultPaintOverrides: PropTypes.object,
1614
+
1615
+ /**
1616
+ * Javascript object that is spread into the addLayer commands first parameter.
1617
+ */
1618
+ options: PropTypes.object,
1619
+
1583
1620
  /**
1584
1621
  * GeoJSON data that is supposed to be rendered by this component.
1585
1622
  */
@@ -2682,13 +2719,12 @@ var MlVectorTileLayer = function MlVectorTileLayer(props) {
2682
2719
  initializedRef.current = true;
2683
2720
  mapRef.current = mapContext.getMap(props.mapId); // Add the new layer to the openlayers instance once it is available
2684
2721
 
2685
- mapRef.current.addSource(sourceName + idSuffixRef.current, {
2722
+ mapRef.current.addSource(sourceName + idSuffixRef.current, _objectSpread2({
2686
2723
  type: "vector",
2687
2724
  tiles: [props.url],
2688
2725
  tileSize: 512,
2689
- attribution: "" //...props.sourceOptions,
2690
-
2691
- });
2726
+ attribution: ""
2727
+ }, props.sourceOptions));
2692
2728
 
2693
2729
  for (var key in props.layers) {
2694
2730
  var layerId = layerName + "_" + key + "_" + idSuffixRef.current;
@@ -2728,12 +2764,17 @@ var MlVectorTileLayer = function MlVectorTileLayer(props) {
2728
2764
  }
2729
2765
  }, [props.layers, props, mapContext]);
2730
2766
  useEffect(function () {
2731
- if (!mapRef.current) return; // toggle layer visibility by changing the layout object's visibility property
2767
+ if (!mapRef.current) return;
2732
2768
 
2733
- if (props.visible) {
2734
- mapRef.current.setLayoutProperty(layerName + idSuffixRef.current, "visibility", "visible");
2735
- } else {
2736
- mapRef.current.setLayoutProperty(layerName + idSuffixRef.current, "visibility", "none");
2769
+ for (var key in props.layers) {
2770
+ if (mapRef.current.getLayer(layerIdsRef.current[key])) {
2771
+ // toggle layer visibility by changing the layout object's visibility property
2772
+ if (props.visible) {
2773
+ mapContext.getMap(props.mapId).setLayoutProperty(layerIdsRef.current[key], "visibility", "visible");
2774
+ } else {
2775
+ mapContext.getMap(props.mapId).setLayoutProperty(layerIdsRef.current[key], "visibility", "none");
2776
+ }
2777
+ }
2737
2778
  }
2738
2779
  }, [props.visible]);
2739
2780
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null);
@@ -2755,6 +2796,11 @@ MlVectorTileLayer.propTypes = {
2755
2796
  */
2756
2797
  layers: PropTypes.object,
2757
2798
 
2799
+ /**
2800
+ * Boolean value to control the visibility of this layer
2801
+ */
2802
+ visible: PropTypes.bool,
2803
+
2758
2804
  /**
2759
2805
  * String of the URL of a wms layer
2760
2806
  */
@@ -2802,29 +2848,16 @@ var defaultProps = {
2802
2848
  */
2803
2849
 
2804
2850
  var MlWmsLayer = function MlWmsLayer(props) {
2805
- var mapContext = useContext(MapContext);
2806
- var componentId = useRef(props.layerId || "MlWmsLayer-" + v4());
2807
- var mapRef = useRef(null);
2851
+ var mapHook = useMap({
2852
+ mapId: props.mapId,
2853
+ waitForLayer: props.insertBeforeLayer
2854
+ });
2808
2855
  var initializedRef = useRef(false);
2809
- var layerId = useRef(props.layerId || componentId.current);
2810
- useEffect(function () {
2811
- var _componentId = componentId.current;
2812
- return function () {
2813
- // This is the cleanup function, it is called when this react component is removed from react-dom
2814
- if (mapRef.current) {
2815
- mapRef.current.cleanup(_componentId);
2816
- mapRef.current = null;
2817
- }
2818
-
2819
- initializedRef.current = false;
2820
- };
2821
- }, []);
2856
+ var layerId = useRef(props.layerId || "MlWmsLayer-" + mapHook.componentId);
2822
2857
  useEffect(function () {
2823
2858
  var _propsUrlParams2;
2824
2859
 
2825
- if (!mapContext.mapExists(props.mapId) || initializedRef.current) return;
2826
- mapRef.current = mapContext.getMap(props.mapId);
2827
- if (!mapRef.current) return;
2860
+ if (!mapHook.map || initializedRef.current) return;
2828
2861
  initializedRef.current = true;
2829
2862
 
2830
2863
  var _propsUrlParams;
@@ -2843,31 +2876,31 @@ var MlWmsLayer = function MlWmsLayer(props) {
2843
2876
 
2844
2877
  var urlParams = new URLSearchParams(urlParamsObj);
2845
2878
  var urlParamsStr = decodeURIComponent(urlParams.toString()) + "".replace(/%2F/g, "/").replace(/%3A/g, ":");
2846
- mapRef.current.addSource(layerId.current, _objectSpread2({
2879
+ mapHook.map.addSource(layerId.current, _objectSpread2({
2847
2880
  type: "raster",
2848
2881
  tiles: [_wmsUrl + "?" + urlParamsStr],
2849
2882
  tileSize: urlParamsObj.width,
2850
2883
  attribution: props.attribution
2851
- }, props.sourceOptions), componentId.current);
2852
- mapRef.current.addLayer(_objectSpread2({
2884
+ }, props.sourceOptions), mapHook.componentId);
2885
+ mapHook.map.addLayer(_objectSpread2({
2853
2886
  id: layerId.current,
2854
2887
  type: "raster",
2855
- source: componentId.current
2856
- }, props.layerOptions), props.insertBeforeLayer, componentId.current);
2888
+ source: layerId.current
2889
+ }, props.layerOptions), props.insertBeforeLayer, mapHook.componentId);
2857
2890
 
2858
2891
  if (!props.visible) {
2859
- mapRef.current.setLayoutProperty(componentId.current, "visibility", "none");
2892
+ mapHook.map.setLayoutProperty(layerId.current, "visibility", "none");
2860
2893
  }
2861
- }, [mapContext.mapIds, mapContext, props]);
2894
+ }, [mapHook.map, props]);
2862
2895
  useEffect(function () {
2863
- if (!mapRef.current || !initializedRef.current) return; // toggle layer visibility by changing the layout object's visibility property
2896
+ if (!mapHook.map || !initializedRef.current) return; // toggle layer visibility by changing the layout object's visibility property
2864
2897
 
2865
2898
  if (props.visible) {
2866
- mapRef.current.setLayoutProperty(componentId.current, "visibility", "visible");
2899
+ mapHook.map.setLayoutProperty(layerId.current, "visibility", "visible");
2867
2900
  } else {
2868
- mapRef.current.setLayoutProperty(componentId.current, "visibility", "none");
2901
+ mapHook.map.setLayoutProperty(layerId.current, "visibility", "none");
2869
2902
  }
2870
- }, [props.visible]);
2903
+ }, [props.visible, mapHook.map]);
2871
2904
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null);
2872
2905
  };
2873
2906