@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.
- package/CHANGELOG.md +13 -0
- package/coverage/clover.xml +179 -165
- package/coverage/coverage-final.json +6 -6
- package/coverage/lcov-report/index.html +36 -36
- package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.js.html +1 -1
- package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.js.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.js.html +1 -1
- package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.js.html +1 -1
- package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js.html +4 -4
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/MlLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
- package/coverage/lcov-report/src/components/MlMarker/MlMarker.js.html +1 -1
- package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.js.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.js.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
- package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
- package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
- package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +261 -111
- package/coverage/lcov-report/src/components/MlShareMapState/index.html +9 -9
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
- package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
- package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
- package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.js.html +49 -13
- package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +15 -15
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.js.html +35 -89
- package/coverage/lcov-report/src/components/MlWmsLayer/index.html +17 -17
- package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.js.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
- package/coverage/lcov-report/src/hooks/index.html +12 -12
- package/coverage/lcov-report/src/hooks/useMap.js.html +40 -28
- package/coverage/lcov-report/src/hooks/useMapState.js.html +34 -34
- package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
- package/coverage/lcov-report/src/i18n.js.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/translations/english.js.html +1 -1
- package/coverage/lcov-report/src/translations/german.js.html +1 -1
- package/coverage/lcov-report/src/translations/index.html +1 -1
- package/coverage/lcov.info +304 -268
- package/dist/index.esm.js +69 -59
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/scripts/build-catalogue-markdown-docs.js +5 -3
- package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +26 -21
- package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +3 -3
- package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.de.md +2 -2
- package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.en.md +3 -0
- package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +2 -2
- package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +3 -3
- package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +2 -2
- package/src/components/MlShareMapState/MlShareMapState.js +138 -88
- package/src/components/MlShareMapState/MlShareMapState.stories.js +79 -29
- package/src/components/MlVectorTileLayer/MlVectorTileLayer.js +17 -5
- package/src/components/MlWmsLayer/MlWmsLayer.js +16 -34
- package/src/hooks/useMap.js +4 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
import
|
|
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
|
|
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
|
|
51
|
+
const layerId = useRef(props.layerId || "MlWmsLayer-" + mapHook.componentId);
|
|
54
52
|
|
|
55
53
|
useEffect(() => {
|
|
56
|
-
|
|
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
|
-
|
|
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
|
|
84
|
+
mapHook.componentId
|
|
103
85
|
);
|
|
104
86
|
|
|
105
|
-
|
|
87
|
+
mapHook.map.addLayer(
|
|
106
88
|
{
|
|
107
89
|
id: layerId.current,
|
|
108
90
|
type: "raster",
|
|
109
|
-
source:
|
|
91
|
+
source: layerId.current,
|
|
110
92
|
...props.layerOptions,
|
|
111
93
|
},
|
|
112
94
|
props.insertBeforeLayer,
|
|
113
|
-
componentId
|
|
95
|
+
mapHook.componentId
|
|
114
96
|
);
|
|
115
97
|
|
|
116
98
|
if (!props.visible) {
|
|
117
|
-
|
|
99
|
+
mapHook.map.setLayoutProperty(layerId.current, "visibility", "none");
|
|
118
100
|
}
|
|
119
|
-
}, [
|
|
101
|
+
}, [mapHook.map, props]);
|
|
120
102
|
|
|
121
103
|
useEffect(() => {
|
|
122
|
-
if (!
|
|
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
|
-
|
|
108
|
+
mapHook.map.setLayoutProperty(layerId.current, "visibility", "visible");
|
|
127
109
|
} else {
|
|
128
|
-
|
|
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
|
};
|
package/src/hooks/useMap.js
CHANGED
|
@@ -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;
|