@map-colonies/react-components 3.15.0 → 3.15.1

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 CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.15.1](https://github.com/MapColonies/shared-components/compare/@map-colonies/react-components@3.15.0...@map-colonies/react-components@3.15.1) (2023-05-28)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * zoom level in 2d mode ([#139](https://github.com/MapColonies/shared-components/issues/139)) ([48f7a85](https://github.com/MapColonies/shared-components/commit/48f7a8543f695a82b9042f9d2704b653443cc2ff))
12
+
13
+
14
+
15
+
16
+
6
17
  # [3.15.0](https://github.com/MapColonies/shared-components/compare/@map-colonies/react-components@3.14.0...@map-colonies/react-components@3.15.0) (2023-05-28)
7
18
 
8
19
 
@@ -27,11 +27,12 @@ var map_types_1 = require("../map.types");
27
27
  require("./zoom_level-tracker.tool.css");
28
28
  /* eslint-disable @typescript-eslint/no-magic-numbers, @typescript-eslint/naming-convention, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call */
29
29
  var detectZoomLevel = function (distance, viewer) {
30
+ var _a;
30
31
  var MAX_ZOOM_LEVEL = 19;
31
32
  var tileProvider = lodash_1.get(viewer.scene.globe, '_surface.tileProvider');
32
33
  var quadtree = tileProvider._quadtree;
33
34
  var drawingBufferHeight = viewer.canvas.height;
34
- var sseDenominator = lodash_1.get(viewer.camera.frustum, 'sseDenominator');
35
+ var sseDenominator = (_a = lodash_1.get(viewer.camera.frustum, 'sseDenominator')) !== null && _a !== void 0 ? _a : 1;
35
36
  for (var level = 0; level <= MAX_ZOOM_LEVEL; level++) {
36
37
  var maxGeometricError = tileProvider.getLevelMaximumGeometricError(level);
37
38
  var error = (maxGeometricError * drawingBufferHeight) / (distance * sseDenominator);
@@ -103,13 +104,15 @@ var ZoomLevelTrackerTool = function (props) {
103
104
  cameraHeight = 0;
104
105
  break;
105
106
  }
106
- var closestZoom = zoomLevelHeights.reduce(function (a, b) {
107
- return Math.abs(b.height - cameraHeight) <
108
- Math.abs(a.height - cameraHeight)
109
- ? b
110
- : a;
111
- });
112
- setZoomLevel(closestZoom.level);
107
+ if (zoomLevelHeights.length > 0) {
108
+ var closestZoom = zoomLevelHeights.reduce(function (a, b) {
109
+ return Math.abs(b.height - cameraHeight) <
110
+ Math.abs(a.height - cameraHeight)
111
+ ? b
112
+ : a;
113
+ });
114
+ setZoomLevel(closestZoom.level);
115
+ }
113
116
  };
114
117
  mapViewer.camera.moveEnd.addEventListener(calculateZoomLevel);
115
118
  return function () {
@@ -123,7 +126,7 @@ var ZoomLevelTrackerTool = function (props) {
123
126
  console.log('CESIUM camera "moveEnd"(from zoom tracker) remove listener failed', e);
124
127
  }
125
128
  };
126
- }, [mapViewer]);
129
+ }, [mapViewer, zoomLevelHeights.length]);
127
130
  return (react_1.default.createElement("div", { className: "zoomLevel" },
128
131
  react_1.default.createElement("div", { className: "zoomLevelValue" }, zoomLevel),
129
132
  react_1.default.createElement("div", { className: "zoomLevelLabel" }, (_a = lodash_1.get(props.locale, 'ZOOM_LABEL')) !== null && _a !== void 0 ? _a : 'zoom')));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@map-colonies/react-components",
3
- "version": "3.15.0",
3
+ "version": "3.15.1",
4
4
  "module": "dist/index.js",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -93,7 +93,7 @@
93
93
  "jest-enzyme": "^7.1.2",
94
94
  "react-test-renderer": "^16.13.1"
95
95
  },
96
- "gitHead": "6b136929ab3c4ba3489825ee9be301eb0b968a1e",
96
+ "gitHead": "cb8b1ee909c0d1650e255d163b52ef6fcb436cba",
97
97
  "jest": {
98
98
  "coverageReporters": [
99
99
  "text",
@@ -16,7 +16,7 @@ const detectZoomLevel = (distance: number, viewer: CesiumViewer) => {
16
16
  const tileProvider = get(viewer.scene.globe, '_surface.tileProvider') as any;
17
17
  const quadtree = tileProvider._quadtree;
18
18
  const drawingBufferHeight = viewer.canvas.height;
19
- const sseDenominator = get(viewer.camera.frustum, 'sseDenominator');
19
+ const sseDenominator = get(viewer.camera.frustum, 'sseDenominator') ?? 1;
20
20
 
21
21
  for (let level = 0; level <= MAX_ZOOM_LEVEL; level++) {
22
22
  const maxGeometricError = tileProvider.getLevelMaximumGeometricError(level);
@@ -104,14 +104,16 @@ export const ZoomLevelTrackerTool: React.FC<RZoomLevelTrackerToolProps> = (
104
104
  break;
105
105
  }
106
106
 
107
- const closestZoom = zoomLevelHeights.reduce((a, b) => {
108
- return Math.abs(b.height - cameraHeight) <
109
- Math.abs(a.height - cameraHeight)
110
- ? b
111
- : a;
112
- });
107
+ if (zoomLevelHeights.length > 0) {
108
+ const closestZoom = zoomLevelHeights.reduce((a, b) => {
109
+ return Math.abs(b.height - cameraHeight) <
110
+ Math.abs(a.height - cameraHeight)
111
+ ? b
112
+ : a;
113
+ });
113
114
 
114
- setZoomLevel(closestZoom.level);
115
+ setZoomLevel(closestZoom.level);
116
+ }
115
117
  };
116
118
 
117
119
  mapViewer.camera.moveEnd.addEventListener(calculateZoomLevel);
@@ -129,7 +131,7 @@ export const ZoomLevelTrackerTool: React.FC<RZoomLevelTrackerToolProps> = (
129
131
  );
130
132
  }
131
133
  };
132
- }, [mapViewer]);
134
+ }, [mapViewer, zoomLevelHeights.length]);
133
135
 
134
136
  return (
135
137
  <div className="zoomLevel">