@mapcomponents/react-maplibre 0.1.20 → 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 (83) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/coverage/clover.xml +179 -165
  3. package/coverage/coverage-final.json +6 -6
  4. package/coverage/lcov-report/index.html +36 -36
  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 +4 -4
  19. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  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 +49 -13
  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 +304 -268
  68. package/dist/index.esm.js +69 -59
  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 +3 -3
  78. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +2 -2
  79. package/src/components/MlShareMapState/MlShareMapState.js +138 -88
  80. package/src/components/MlShareMapState/MlShareMapState.stories.js +79 -29
  81. package/src/components/MlVectorTileLayer/MlVectorTileLayer.js +17 -5
  82. package/src/components/MlWmsLayer/MlWmsLayer.js +16 -34
  83. package/src/hooks/useMap.js +4 -0
@@ -1,5 +1,5 @@
1
- import React, { useContext, useRef, useEffect } from "react";
2
- import { MapContext } from "@mapcomponents/react-core";
1
+ import React, { useRef, useEffect } from "react";
2
+ import useMap from "../../hooks/useMap";
3
3
 
4
4
  import PropTypes from "prop-types";
5
5
  import { v4 as uuidv4 } from "uuid";
@@ -45,31 +45,13 @@ const defaultProps = {
45
45
  * @component
46
46
  */
47
47
  const MlWmsLayer = (props) => {
48
- const mapContext = useContext(MapContext);
48
+ const mapHook = useMap({ mapId: props.mapId, waitForLayer: props.insertBeforeLayer });
49
49
 
50
- const componentId = useRef(props.layerId || ("MlWmsLayer-" + uuidv4()));
51
- const mapRef = useRef(null);
52
50
  const initializedRef = useRef(false);
53
- const layerId = useRef(props.layerId || componentId.current);
51
+ const layerId = useRef(props.layerId || "MlWmsLayer-" + mapHook.componentId);
54
52
 
55
53
  useEffect(() => {
56
- let _componentId = componentId.current;
57
- return () => {
58
- // This is the cleanup function, it is called when this react component is removed from react-dom
59
- if (mapRef.current) {
60
- mapRef.current.cleanup(_componentId);
61
-
62
- mapRef.current = null;
63
- }
64
- initializedRef.current = false;
65
- };
66
- }, []);
67
-
68
- useEffect(() => {
69
- if (!mapContext.mapExists(props.mapId) || initializedRef.current) return;
70
-
71
- mapRef.current = mapContext.getMap(props.mapId);
72
- if (!mapRef.current) return;
54
+ if (!mapHook.map || initializedRef.current) return;
73
55
 
74
56
  initializedRef.current = true;
75
57
 
@@ -90,7 +72,7 @@ const MlWmsLayer = (props) => {
90
72
  let urlParamsStr =
91
73
  decodeURIComponent(urlParams.toString()) + "".replace(/%2F/g, "/").replace(/%3A/g, ":");
92
74
 
93
- mapRef.current.addSource(
75
+ mapHook.map.addSource(
94
76
  layerId.current,
95
77
  {
96
78
  type: "raster",
@@ -99,35 +81,35 @@ const MlWmsLayer = (props) => {
99
81
  attribution: props.attribution,
100
82
  ...props.sourceOptions,
101
83
  },
102
- componentId.current
84
+ mapHook.componentId
103
85
  );
104
86
 
105
- mapRef.current.addLayer(
87
+ mapHook.map.addLayer(
106
88
  {
107
89
  id: layerId.current,
108
90
  type: "raster",
109
- source: componentId.current,
91
+ source: layerId.current,
110
92
  ...props.layerOptions,
111
93
  },
112
94
  props.insertBeforeLayer,
113
- componentId.current
95
+ mapHook.componentId
114
96
  );
115
97
 
116
98
  if (!props.visible) {
117
- mapRef.current.setLayoutProperty(componentId.current, "visibility", "none");
99
+ mapHook.map.setLayoutProperty(layerId.current, "visibility", "none");
118
100
  }
119
- }, [mapContext.mapIds, mapContext, props]);
101
+ }, [mapHook.map, props]);
120
102
 
121
103
  useEffect(() => {
122
- if (!mapRef.current || !initializedRef.current) return;
104
+ if (!mapHook.map || !initializedRef.current) return;
123
105
 
124
106
  // toggle layer visibility by changing the layout object's visibility property
125
107
  if (props.visible) {
126
- mapRef.current.setLayoutProperty(componentId.current, "visibility", "visible");
108
+ mapHook.map.setLayoutProperty(layerId.current, "visibility", "visible");
127
109
  } else {
128
- mapRef.current.setLayoutProperty(componentId.current, "visibility", "none");
110
+ mapHook.map.setLayoutProperty(layerId.current, "visibility", "none");
129
111
  }
130
- }, [props.visible]);
112
+ }, [props.visible, mapHook.map]);
131
113
 
132
114
  return <></>;
133
115
  };
@@ -25,8 +25,12 @@ function useMap(props) {
25
25
 
26
26
  useEffect(() => {
27
27
  let _componentId = componentId.current;
28
+ console.log("initialize maphook");
28
29
 
29
30
  return () => {
31
+ console.log("cleanup maphook");
32
+ console.log(typeof mapRef.current);
33
+ console.log(JSON.stringify(mapRef.current.style._order));
30
34
  if (mapRef.current) {
31
35
  mapRef.current.cleanup(_componentId);
32
36
  mapRef.current = undefined;