@rnmapbox/maps 10.1.28 → 10.1.29

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/README.md CHANGED
@@ -252,4 +252,4 @@ Help drive this repo forward - be a sponsor. Add a comment [here](https://github
252
252
  ---
253
253
  ## Developer Group
254
254
 
255
- Have a question or need some help? Join our [Gitter developer group](https://gitter.im/rnmapbox/Lobby)!
255
+ Have a question or need some help? Use [Github discussions](https://github.com/rnmapbox/maps/discussions) or the [react-native channel](https://discord.com/channels/1004826913229000704/1092426983696248893) in the mapbox discord.
@@ -99,9 +99,11 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
99
99
  override fun addToMap(mapView: RNMBXMapView) {
100
100
  super.addToMap(mapView)
101
101
  mapView.callIfAttachedToWindow {
102
- setInitialCamera()
103
- updateMaxBounds()
104
- mCameraStop?.let { updateCamera(it) }
102
+ withMapView { mapView ->
103
+ setInitialCamera(mapView)
104
+ updateMaxBounds(mapView)
105
+ mCameraStop?.let { updateCamera(it, mapView) }
106
+ }
105
107
  }
106
108
  _observeViewportState(mapView.mapView)
107
109
  _updateViewportState()
@@ -117,8 +119,8 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
117
119
  fun setStop(stop: CameraStop) {
118
120
  mCameraStop = stop
119
121
  stop.setCallback(mCameraCallback)
120
- if (mMapView != null) {
121
- stop.let { updateCamera(it) }
122
+ withMapView { mapView ->
123
+ stop.let { updateCamera(it, mapView) }
122
124
  }
123
125
  }
124
126
 
@@ -172,25 +174,24 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
172
174
 
173
175
  fun setMaxBounds(bounds: LatLngBounds?) {
174
176
  mMaxBounds = bounds
175
- updateMaxBounds()
177
+ withMapView { mapView ->
178
+ updateMaxBounds(mapView)
179
+ }
176
180
  }
177
181
 
178
182
 
179
- private fun updateMaxBounds() {
180
- withMapView { mapView ->
181
- val map = mapView.getMapboxMap()
182
- val builder = CameraBoundsOptions.Builder()
183
- builder.bounds(mMaxBounds?.toBounds())
184
- builder.minZoom(mMinZoomLevel ?: 0.0) // Passing null does not reset this value.
185
- builder.maxZoom(mMaxZoomLevel ?: 25.0) // Passing null does not reset this value.
186
- map.setBounds(builder.build())
187
- mCameraStop?.let { updateCamera(it) }
188
- }
183
+ private fun updateMaxBounds(mapView: RNMBXMapView) {
184
+ val map = mapView.getMapboxMap()
185
+ val builder = CameraBoundsOptions.Builder()
186
+ builder.bounds(mMaxBounds?.toBounds())
187
+ builder.minZoom(mMinZoomLevel ?: 0.0) // Passing null does not reset this value.
188
+ builder.maxZoom(mMaxZoomLevel ?: 25.0) // Passing null does not reset this value.
189
+ map.setBounds(builder.build())
190
+ mCameraStop?.let { updateCamera(it, mapView) }
189
191
  }
190
192
 
191
- private fun setInitialCamera() {
193
+ private fun setInitialCamera(mapView: RNMBXMapView) {
192
194
  mDefaultStop?.let {
193
- val mapView = mMapView!!
194
195
  val map = mapView.getMapboxMap()
195
196
 
196
197
  it.setDuration(0)
@@ -200,9 +201,9 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
200
201
  }
201
202
  }
202
203
 
203
- private fun updateCamera(cameraStop: CameraStop) {
204
+ private fun updateCamera(cameraStop: CameraStop, mapView: RNMBXMapView) {
204
205
  mCameraUpdateQueue.offer(cameraStop)
205
- mCameraUpdateQueue.execute(mMapView)
206
+ mCameraUpdateQueue.execute(mapView)
206
207
  }
207
208
 
208
209
  private fun updateUserLocation(isAnimated: Boolean) {
@@ -243,12 +244,12 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
243
244
 
244
245
  fun setMinZoomLevel(zoomLevel: Double?) {
245
246
  mMinZoomLevel = zoomLevel
246
- updateMaxBounds()
247
+ withMapView { updateMaxBounds(it) }
247
248
  }
248
249
 
249
250
  fun setMaxZoomLevel(zoomLevel: Double?) {
250
251
  mMaxZoomLevel = zoomLevel
251
- updateMaxBounds()
252
+ withMapView { updateMaxBounds(it) }
252
253
  }
253
254
 
254
255
  fun setZoomLevel(zoomLevel: Double) {
@@ -309,7 +309,9 @@ abstract class RNMBXLayer<T : Layer?>(protected var mContext: Context) : Abstrac
309
309
  val layer = mLayer
310
310
  if (layer != null) {
311
311
  it.removeStyleLayer(layer.layerId)
312
- mLayer = null // see https://github.com/rnmapbox/maps/pull/3392
312
+ if (reason != RemovalReason.REORDER) {
313
+ mLayer = null // see https://github.com/rnmapbox/maps/pull/3392
314
+ }
313
315
  } else {
314
316
  Logger.e("RNMBXLayer","mLayer is null on removal layer from map")
315
317
  }
@@ -122,6 +122,59 @@ class Camera extends _react.Component {
122
122
  });
123
123
  }
124
124
  }
125
+ setCamera(props) {
126
+ const {
127
+ map
128
+ } = this.context;
129
+ if (!map) {
130
+ return;
131
+ }
132
+ const {
133
+ centerCoordinate,
134
+ bounds,
135
+ zoomLevel,
136
+ heading,
137
+ pitch,
138
+ padding,
139
+ animationDuration = 2000
140
+ } = props;
141
+ let options = {
142
+ center: centerCoordinate?.slice(0, 2),
143
+ zoom: zoomLevel ?? map.getZoom(),
144
+ bearing: heading ?? map.getBearing(),
145
+ pitch: pitch ?? map.getPitch()
146
+ };
147
+ if (padding?.paddingTop && padding?.paddingRight && padding?.paddingBottom && padding?.paddingLeft) {
148
+ options.padding = buildMapboxGlPadding([padding.paddingTop, padding.paddingRight, padding.paddingBottom, padding.paddingLeft]);
149
+ }
150
+ if (bounds?.ne && bounds?.sw) {
151
+ const newCameraTransform = map.cameraForBounds([bounds.ne, bounds.sw], options);
152
+ options = {
153
+ ...options,
154
+ ...newCameraTransform
155
+ };
156
+ }
157
+ switch (props.animationMode) {
158
+ default:
159
+ case 'easeTo':
160
+ case 'linearTo':
161
+ map.easeTo({
162
+ ...options,
163
+ duration: animationDuration
164
+ });
165
+ break;
166
+ case 'flyTo':
167
+ map.flyTo({
168
+ ...options,
169
+ duration: animationDuration
170
+ });
171
+ break;
172
+ case 'moveTo':
173
+ case 'none':
174
+ map.jumpTo(options);
175
+ break;
176
+ }
177
+ }
125
178
  render() {
126
179
  return /*#__PURE__*/React.createElement(React.Fragment, null);
127
180
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_MapContext","_interopRequireDefault","e","__esModule","default","isArray","value","length","undefined","buildMapboxGlPadding","padding","left","right","top","bottom","Camera","Component","contextType","MapContext","UserTrackingModes","componentDidMount","map","context","props","minZoomLevel","setMinZoom","maxZoomLevel","setMaxZoom","zoomLevel","setZoom","centerCoordinate","flyTo","center","slice","duration","fitBounds","northEastCoordinates","southWestCoordinates","animationDuration","moveTo","easeTo","zoomTo","zoom","render","React","createElement","Fragment","exports","_default"],"sourceRoot":"../../../../src","sources":["web/components/Camera.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_MapContext","_interopRequireDefault","e","__esModule","default","isArray","value","length","undefined","buildMapboxGlPadding","padding","left","right","top","bottom","Camera","Component","contextType","MapContext","UserTrackingModes","componentDidMount","map","context","props","minZoomLevel","setMinZoom","maxZoomLevel","setMaxZoom","zoomLevel","setZoom","centerCoordinate","flyTo","center","slice","duration","fitBounds","northEastCoordinates","southWestCoordinates","animationDuration","moveTo","easeTo","zoomTo","zoom","setCamera","bounds","heading","pitch","options","getZoom","bearing","getBearing","getPitch","paddingTop","paddingRight","paddingBottom","paddingLeft","ne","sw","newCameraTransform","cameraForBounds","animationMode","jumpTo","render","React","createElement","Fragment","exports","_default"],"sourceRoot":"../../../../src","sources":["web/components/Camera.tsx"],"mappings":"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","ignoreList":[]}
@@ -115,6 +115,59 @@ class Camera extends Component {
115
115
  });
116
116
  }
117
117
  }
118
+ setCamera(props) {
119
+ const {
120
+ map
121
+ } = this.context;
122
+ if (!map) {
123
+ return;
124
+ }
125
+ const {
126
+ centerCoordinate,
127
+ bounds,
128
+ zoomLevel,
129
+ heading,
130
+ pitch,
131
+ padding,
132
+ animationDuration = 2000
133
+ } = props;
134
+ let options = {
135
+ center: centerCoordinate?.slice(0, 2),
136
+ zoom: zoomLevel ?? map.getZoom(),
137
+ bearing: heading ?? map.getBearing(),
138
+ pitch: pitch ?? map.getPitch()
139
+ };
140
+ if (padding?.paddingTop && padding?.paddingRight && padding?.paddingBottom && padding?.paddingLeft) {
141
+ options.padding = buildMapboxGlPadding([padding.paddingTop, padding.paddingRight, padding.paddingBottom, padding.paddingLeft]);
142
+ }
143
+ if (bounds?.ne && bounds?.sw) {
144
+ const newCameraTransform = map.cameraForBounds([bounds.ne, bounds.sw], options);
145
+ options = {
146
+ ...options,
147
+ ...newCameraTransform
148
+ };
149
+ }
150
+ switch (props.animationMode) {
151
+ default:
152
+ case 'easeTo':
153
+ case 'linearTo':
154
+ map.easeTo({
155
+ ...options,
156
+ duration: animationDuration
157
+ });
158
+ break;
159
+ case 'flyTo':
160
+ map.flyTo({
161
+ ...options,
162
+ duration: animationDuration
163
+ });
164
+ break;
165
+ case 'moveTo':
166
+ case 'none':
167
+ map.jumpTo(options);
168
+ break;
169
+ }
170
+ }
118
171
  render() {
119
172
  return /*#__PURE__*/React.createElement(React.Fragment, null);
120
173
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Component","MapContext","isArray","value","length","undefined","buildMapboxGlPadding","padding","left","right","top","bottom","Camera","contextType","UserTrackingModes","componentDidMount","map","context","props","minZoomLevel","setMinZoom","maxZoomLevel","setMaxZoom","zoomLevel","setZoom","centerCoordinate","flyTo","center","slice","duration","fitBounds","northEastCoordinates","southWestCoordinates","animationDuration","moveTo","easeTo","zoomTo","zoom","render","React","createElement","Fragment"],"sourceRoot":"../../../../src","sources":["web/components/Camera.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Component","MapContext","isArray","value","length","undefined","buildMapboxGlPadding","padding","left","right","top","bottom","Camera","contextType","UserTrackingModes","componentDidMount","map","context","props","minZoomLevel","setMinZoom","maxZoomLevel","setMaxZoom","zoomLevel","setZoom","centerCoordinate","flyTo","center","slice","duration","fitBounds","northEastCoordinates","southWestCoordinates","animationDuration","moveTo","easeTo","zoomTo","zoom","setCamera","bounds","heading","pitch","options","getZoom","bearing","getBearing","getPitch","paddingTop","paddingRight","paddingBottom","paddingLeft","ne","sw","newCameraTransform","cameraForBounds","animationMode","jumpTo","render","React","createElement","Fragment"],"sourceRoot":"../../../../src","sources":["web/components/Camera.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="mapbox-gl" />
2
2
  import { Component, ContextType } from 'react';
3
- import { CameraProps, CameraRef } from '../../components/Camera';
3
+ import { CameraProps, CameraStop, CameraRef } from '../../components/Camera';
4
4
  import { Position } from '../../types/Position';
5
5
  import MapContext from '../MapContext';
6
6
  declare class Camera extends Component<Pick<CameraProps, 'centerCoordinate' | 'zoomLevel' | 'minZoomLevel' | 'maxZoomLevel'>> implements Omit<CameraRef, 'setCamera'> {
@@ -14,6 +14,7 @@ declare class Camera extends Component<Pick<CameraProps, 'centerCoordinate' | 'z
14
14
  flyTo(centerCoordinate: Position, animationDuration?: number): void;
15
15
  moveTo(centerCoordinate: Position, animationDuration?: number): void;
16
16
  zoomTo(zoomLevel: number, animationDuration?: number): void;
17
+ setCamera(props: CameraStop): void;
17
18
  render(): import("react").JSX.Element;
18
19
  }
19
20
  export { Camera };
@@ -1 +1 @@
1
- {"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../../src/web/components/Camera.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,UAAU,MAAM,eAAe,CAAC;AA2CvC,cAAM,MACJ,SAAQ,SAAS,CACf,IAAI,CACF,WAAW,EACX,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CACnE,CAEH,YAAW,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;IAEvC,OAAO,EAAG,WAAW,CAAC,OAAO,UAAU,CAAC,CAAC;IAEzC,MAAM,CAAC,WAAW;;OAAc;IAChC,MAAM,CAAC,iBAAiB,UAAM;IAE9B,iBAAiB;IA8BjB,SAAS,CACP,oBAAoB,EAAE,QAAQ,EAC9B,oBAAoB,EAAE,QAAQ,EAC9B,OAAO,GAAE,MAAM,GAAG,MAAM,EAAM,EAC9B,iBAAiB,SAAI;IAiBvB,KAAK,CAAC,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,SAAO;IAU1D,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,SAAI;IAUxD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,SAAO;IAUlD,MAAM;CAGP;AAED,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../../src/web/components/Camera.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,UAAU,MAAM,eAAe,CAAC;AA2CvC,cAAM,MACJ,SAAQ,SAAS,CACf,IAAI,CACF,WAAW,EACX,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CACnE,CAEH,YAAW,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;IAEvC,OAAO,EAAG,WAAW,CAAC,OAAO,UAAU,CAAC,CAAC;IAEzC,MAAM,CAAC,WAAW;;OAAc;IAChC,MAAM,CAAC,iBAAiB,UAAM;IAE9B,iBAAiB;IA8BjB,SAAS,CACP,oBAAoB,EAAE,QAAQ,EAC9B,oBAAoB,EAAE,QAAQ,EAC9B,OAAO,GAAE,MAAM,GAAG,MAAM,EAAM,EAC9B,iBAAiB,SAAI;IAiBvB,KAAK,CAAC,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,SAAO;IAU1D,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,SAAI;IAUxD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,SAAO;IAUlD,SAAS,CAAC,KAAK,EAAE,UAAU;IA4D3B,MAAM;CAGP;AAED,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,eAAe,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rnmapbox/maps",
3
3
  "description": "A Mapbox react native module for creating custom maps",
4
- "version": "10.1.28",
4
+ "version": "10.1.29",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -86,6 +86,9 @@
86
86
  "@babel/core": "7.19.1",
87
87
  "@babel/eslint-parser": "^7.19.1",
88
88
  "@babel/plugin-proposal-class-properties": "7.18.6",
89
+ "@babel/helper-split-export-declaration": "7.24.7",
90
+ "@babel/helper-hoist-variables": "7.24.7",
91
+ "@babel/helper-function-name": "7.24.7",
89
92
  "@babel/runtime": "7.19.0",
90
93
  "@react-native/eslint-config": "^0.72.2",
91
94
  "@sinonjs/fake-timers": "^8.0.1",
@@ -1,6 +1,6 @@
1
1
  import { Component, ContextType } from 'react';
2
2
 
3
- import { CameraProps, CameraRef } from '../../components/Camera';
3
+ import { CameraProps, CameraStop, CameraRef } from '../../components/Camera';
4
4
  import { Position } from '../../types/Position';
5
5
  import MapContext from '../MapContext';
6
6
 
@@ -140,6 +140,66 @@ class Camera
140
140
  }
141
141
  }
142
142
 
143
+ setCamera(props: CameraStop) {
144
+ const { map } = this.context;
145
+ if (!map) {
146
+ return;
147
+ }
148
+ const {
149
+ centerCoordinate,
150
+ bounds,
151
+ zoomLevel,
152
+ heading,
153
+ pitch,
154
+ padding,
155
+ animationDuration = 2000,
156
+ } = props;
157
+
158
+ let options: mapboxgl.CameraOptions = {
159
+ center: centerCoordinate?.slice(0, 2) as [number, number],
160
+ zoom: zoomLevel ?? map.getZoom(),
161
+ bearing: heading ?? map.getBearing(),
162
+ pitch: pitch ?? map.getPitch(),
163
+ };
164
+
165
+ if (
166
+ padding?.paddingTop &&
167
+ padding?.paddingRight &&
168
+ padding?.paddingBottom &&
169
+ padding?.paddingLeft
170
+ ) {
171
+ options.padding = buildMapboxGlPadding([
172
+ padding.paddingTop,
173
+ padding.paddingRight,
174
+ padding.paddingBottom,
175
+ padding.paddingLeft,
176
+ ]);
177
+ }
178
+
179
+ if (bounds?.ne && bounds?.sw) {
180
+ const newCameraTransform = map.cameraForBounds(
181
+ [bounds.ne as mapboxgl.LngLatLike, bounds.sw as mapboxgl.LngLatLike],
182
+ options,
183
+ );
184
+ options = { ...options, ...newCameraTransform };
185
+ }
186
+
187
+ switch (props.animationMode) {
188
+ default:
189
+ case 'easeTo':
190
+ case 'linearTo':
191
+ map.easeTo({ ...options, duration: animationDuration });
192
+ break;
193
+ case 'flyTo':
194
+ map.flyTo({ ...options, duration: animationDuration });
195
+ break;
196
+ case 'moveTo':
197
+ case 'none':
198
+ map.jumpTo(options);
199
+ break;
200
+ }
201
+ }
202
+
143
203
  render() {
144
204
  return <></>;
145
205
  }