@rnmapbox/maps 10.1.12 → 10.1.14

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 (45) hide show
  1. package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +13 -2
  2. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotationCoordinator.kt +39 -40
  3. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/CameraStop.kt +9 -15
  4. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/CameraUpdateItem.kt +1 -2
  5. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt +15 -13
  6. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCameraManager.kt +4 -3
  7. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCameraModule.kt +51 -0
  8. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXVIewportManager.kt +2 -1
  9. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/constants/CameraMode.java +3 -2
  10. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleFactory.kt +1046 -987
  11. package/android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXModule.kt +1 -0
  12. package/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt +10 -2
  13. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXCameraModuleSpec.java +41 -0
  14. package/ios/RNMBX/RNMBXCamera.swift +49 -54
  15. package/ios/RNMBX/RNMBXCameraModule.h +18 -0
  16. package/ios/RNMBX/RNMBXCameraModule.mm +67 -0
  17. package/lib/commonjs/components/Camera.js +14 -15
  18. package/lib/commonjs/components/Camera.js.map +1 -1
  19. package/lib/commonjs/components/Viewport.js +2 -43
  20. package/lib/commonjs/components/Viewport.js.map +1 -1
  21. package/lib/commonjs/specs/NativeRNMBXCameraModule.js +10 -0
  22. package/lib/commonjs/specs/NativeRNMBXCameraModule.js.map +1 -0
  23. package/lib/commonjs/utils/NativeCommands.js +50 -0
  24. package/lib/commonjs/utils/NativeCommands.js.map +1 -0
  25. package/lib/module/components/Camera.js +15 -16
  26. package/lib/module/components/Camera.js.map +1 -1
  27. package/lib/module/components/Viewport.js +1 -42
  28. package/lib/module/components/Viewport.js.map +1 -1
  29. package/lib/module/specs/NativeRNMBXCameraModule.js +6 -0
  30. package/lib/module/specs/NativeRNMBXCameraModule.js.map +1 -0
  31. package/lib/module/utils/NativeCommands.js +43 -0
  32. package/lib/module/utils/NativeCommands.js.map +1 -0
  33. package/lib/typescript/src/components/Camera.d.ts.map +1 -1
  34. package/lib/typescript/src/components/Viewport.d.ts +0 -3
  35. package/lib/typescript/src/components/Viewport.d.ts.map +1 -1
  36. package/lib/typescript/src/specs/NativeRNMBXCameraModule.d.ts +27 -0
  37. package/lib/typescript/src/specs/NativeRNMBXCameraModule.d.ts.map +1 -0
  38. package/lib/typescript/src/utils/NativeCommands.d.ts +25 -0
  39. package/lib/typescript/src/utils/NativeCommands.d.ts.map +1 -0
  40. package/package.json +1 -1
  41. package/setup-jest.js +4 -0
  42. package/src/components/Camera.tsx +22 -10
  43. package/src/components/Viewport.tsx +2 -94
  44. package/src/specs/NativeRNMBXCameraModule.ts +36 -0
  45. package/src/utils/NativeCommands.ts +89 -0
@@ -1,7 +1,9 @@
1
- import React, { forwardRef, memo, useCallback, useImperativeHandle, useMemo, useRef } from 'react';
1
+ import React, { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
2
2
  import { NativeModules } from 'react-native';
3
3
  import { makeLatLngBounds, makePoint } from '../utils/geoUtils';
4
4
  import NativeCameraView from '../specs/RNMBXCameraNativeComponent';
5
+ import RNMBXCameraModule from '../specs/NativeRNMBXCameraModule';
6
+ import { NativeCommands } from '../utils/NativeCommands';
5
7
  const NativeModule = NativeModules.RNMBXModule;
6
8
  export let UserTrackingMode = /*#__PURE__*/function (UserTrackingMode) {
7
9
  UserTrackingMode["Follow"] = "normal";
@@ -75,6 +77,13 @@ export const Camera = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, ref) =>
75
77
  onUserTrackingModeChange
76
78
  } = props;
77
79
  const nativeCamera = useRef(null);
80
+ const commands = useMemo(() => new NativeCommands(RNMBXCameraModule), []);
81
+ useEffect(() => {
82
+ if (nativeCamera.current) {
83
+ commands.setNativeRef(nativeCamera.current);
84
+ }
85
+ // eslint-disable-next-line react-hooks/exhaustive-deps
86
+ }, [commands, nativeCamera.current]);
78
87
  const buildNativeStop = useCallback((stop, ignoreFollowUserLocation = false) => {
79
88
  stop = {
80
89
  ...stop,
@@ -158,7 +167,6 @@ export const Camera = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, ref) =>
158
167
  if (!allowUpdates) {
159
168
  return;
160
169
  }
161
- lastTS += 1;
162
170
  if (!config.type)
163
171
  // @ts-expect-error The compiler doesn't understand that the `config` union type is guaranteed
164
172
  // to be an object type.
@@ -175,26 +183,18 @@ export const Camera = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, ref) =>
175
183
  if (_nativeStop) {
176
184
  _nativeStops = [..._nativeStops, _nativeStop];
177
185
  }
178
- nativeCamera.current?.setNativeProps({
179
- stop: {
180
- stops: _nativeStops,
181
- __updateTS: lastTS
182
- }
183
- });
186
+ commands.call('updateCameraStop', [{
187
+ stops: _nativeStops
188
+ }]);
184
189
  }
185
190
  } else if (config.type === 'CameraStop') {
186
191
  const _nativeStop = buildNativeStop(config);
187
192
  if (_nativeStop) {
188
- nativeCamera.current?.setNativeProps({
189
- stop: {
190
- __updateTS: lastTS,
191
- ..._nativeStop
192
- }
193
- });
193
+ commands.call('updateCameraStop', [_nativeStop]);
194
194
  }
195
195
  }
196
196
  };
197
- const setCamera = useCallback(_setCamera, [allowUpdates, buildNativeStop]);
197
+ const setCamera = useCallback(_setCamera, [allowUpdates, buildNativeStop, commands]);
198
198
  const _fitBounds = (ne, sw, paddingConfig = 0, _animationDuration = 0) => {
199
199
  let _padding = {
200
200
  paddingTop: 0,
@@ -348,6 +348,5 @@ export const Camera = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, ref) =>
348
348
  onUserTrackingModeChange: _onUserTrackingModeChange
349
349
  });
350
350
  }));
351
- let lastTS = 0;
352
351
  const RNMBXCamera = NativeCameraView;
353
352
  //# sourceMappingURL=Camera.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","memo","useCallback","useImperativeHandle","useMemo","useRef","NativeModules","makeLatLngBounds","makePoint","NativeCameraView","NativeModule","RNMBXModule","UserTrackingMode","nativeAnimationMode","mode","NativeCameraModes","CameraModes","Flight","Ease","Linear","Move","None","Camera","props","ref","centerCoordinate","bounds","heading","pitch","zoomLevel","padding","animationDuration","animationMode","minZoomLevel","maxZoomLevel","maxBounds","followUserLocation","followUserMode","followZoomLevel","followPitch","followHeading","followPadding","defaultSettings","allowUpdates","onUserTrackingModeChange","nativeCamera","buildNativeStop","stop","ignoreFollowUserLocation","type","_nativeStop","undefined","zoom","duration","JSON","stringify","ne","sw","paddingTop","paddingRight","paddingBottom","paddingLeft","_onUserTrackingModeChange","event","nativeEvent","payload","payloadRenamed","nativeDefaultStop","nativeStop","nativeMaxBounds","_setCamera","config","lastTS","stops","_stop","_nativeStops","current","setNativeProps","__updateTS","setCamera","_fitBounds","paddingConfig","_animationDuration","_padding","length","fitBounds","_flyTo","_centerCoordinate","flyTo","_moveTo","moveTo","_zoomTo","_zoomLevel","zoomTo","createElement","RNMBXCamera","testID","defaultStop"],"sourceRoot":"../../../src","sources":["components/Camera.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","forwardRef","memo","useCallback","useEffect","useImperativeHandle","useMemo","useRef","NativeModules","makeLatLngBounds","makePoint","NativeCameraView","RNMBXCameraModule","NativeCommands","NativeModule","RNMBXModule","UserTrackingMode","nativeAnimationMode","mode","NativeCameraModes","CameraModes","Flight","Ease","Linear","Move","None","Camera","props","ref","centerCoordinate","bounds","heading","pitch","zoomLevel","padding","animationDuration","animationMode","minZoomLevel","maxZoomLevel","maxBounds","followUserLocation","followUserMode","followZoomLevel","followPitch","followHeading","followPadding","defaultSettings","allowUpdates","onUserTrackingModeChange","nativeCamera","commands","current","setNativeRef","buildNativeStop","stop","ignoreFollowUserLocation","type","_nativeStop","undefined","zoom","duration","JSON","stringify","ne","sw","paddingTop","paddingRight","paddingBottom","paddingLeft","_onUserTrackingModeChange","event","nativeEvent","payload","payloadRenamed","nativeDefaultStop","nativeStop","nativeMaxBounds","_setCamera","config","stops","_stop","_nativeStops","call","setCamera","_fitBounds","paddingConfig","_animationDuration","_padding","length","fitBounds","_flyTo","_centerCoordinate","flyTo","_moveTo","moveTo","_zoomTo","_zoomLevel","zoomTo","createElement","RNMBXCamera","testID","defaultStop"],"sourceRoot":"../../../src","sources":["components/Camera.tsx"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
  import React, { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
3
- import { findNodeHandle } from 'react-native';
4
3
  import NativeViewport from '../specs/RNMBXViewportNativeComponent';
5
4
  import RNMBXViewportModule from '../specs/NativeRNMBXViewportModule';
5
+ import { NativeCommands } from '../utils/NativeCommands';
6
6
  /**
7
7
  * provides a structured approach to organizing camera management logic into states and transitions between them.
8
8
  *
@@ -52,45 +52,4 @@ export const Viewport = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, ref)
52
52
  }));
53
53
  }));
54
54
  const RNMBXViewport = NativeViewport;
55
- class NativeCommands {
56
- constructor(module) {
57
- this.module = module;
58
- this.preRefMethodQueue = [];
59
- }
60
- async setNativeRef(nativeRef) {
61
- if (nativeRef) {
62
- this.nativeRef = nativeRef;
63
- while (this.preRefMethodQueue.length > 0) {
64
- const item = this.preRefMethodQueue.pop();
65
- if (item && item.method && item.resolver) {
66
- const res = await this._call(item.method.name, nativeRef, item.method.args);
67
- item.resolver(res);
68
- }
69
- }
70
- }
71
- }
72
- call(name, args) {
73
- if (this.nativeRef) {
74
- return this._call(name, this.nativeRef, args);
75
- } else {
76
- return new Promise(resolve => {
77
- this.preRefMethodQueue.push({
78
- method: {
79
- name,
80
- args
81
- },
82
- resolver: resolve
83
- });
84
- });
85
- }
86
- }
87
- _call(name, nativeRef, args) {
88
- const handle = findNodeHandle(nativeRef);
89
- if (handle) {
90
- return this.module[name](handle, ...args);
91
- } else {
92
- throw new Error(`Could not find handle for native ref ${module} when trying to invoke ${String(name)}`);
93
- }
94
- }
95
- }
96
55
  //# sourceMappingURL=Viewport.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","memo","useEffect","useImperativeHandle","useMemo","useRef","findNodeHandle","NativeViewport","RNMBXViewportModule","Viewport","props","ref","commands","NativeCommands","nativeViewport","current","setNativeRef","getState","console","log","call","idle","transitionTo","state","transition","onStatusChangedNative","propsOnStatusChanged","onStatusChanged","event","nativeEvent","payload","undefined","createElement","RNMBXViewport","_extends","hasStatusChanged","constructor","module","preRefMethodQueue","nativeRef","length","item","pop","method","resolver","res","_call","name","args","Promise","resolve","push","handle","Error","String"],"sourceRoot":"../../../src","sources":["components/Viewport.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","forwardRef","memo","useEffect","useImperativeHandle","useMemo","useRef","NativeViewport","RNMBXViewportModule","NativeCommands","Viewport","props","ref","commands","nativeViewport","current","setNativeRef","getState","console","log","call","idle","transitionTo","state","transition","onStatusChangedNative","propsOnStatusChanged","onStatusChanged","event","nativeEvent","payload","undefined","createElement","RNMBXViewport","_extends","hasStatusChanged"],"sourceRoot":"../../../src","sources":["components/Viewport.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAEVC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,mBAAmB,EACnBC,OAAO,EACPC,MAAM,QACD,OAAO;AAGd,OAAOC,cAAc,MAGd,uCAAuC;AAC9C,OAAOC,mBAAmB,MAAM,oCAAoC;AACpE,SAASC,cAAc,QAAQ,yBAAyB;AAuJxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,QAAQ,gBAAGR,IAAI,eAC1BD,UAAU,CAAa,CAACU,KAAY,EAAEC,GAA4B,KAAK;EACrE,MAAMC,QAAQ,GAAGR,OAAO,CAAC,MAAM,IAAII,cAAc,CAACD,mBAAmB,CAAC,EAAE,EAAE,CAAC;EAC3E,MAAMM,cAAc,GAAGR,MAAM,CAAuB,IAAI,CAAC;EACzDH,SAAS,CAAC,MAAM;IACd,IAAIW,cAAc,CAACC,OAAO,EAAE;MAC1BF,QAAQ,CAACG,YAAY,CAACF,cAAc,CAACC,OAAO,CAAC;IAC/C;IACA;EACF,CAAC,EAAE,CAACF,QAAQ,EAAEC,cAAc,CAACC,OAAO,CAAC,CAAC;EAEtCX,mBAAmB,CAACQ,GAAG,EAAE,OAAO;IAC9BK,QAAQA,CAAA,EAAG;MACTC,OAAO,CAACC,GAAG,CAAC,sBAAsB,CAAC;MACnC,OAAON,QAAQ,CAACO,IAAI,CAAS,UAAU,EAAE,EAAE,CAAC;IAC9C,CAAC;IACD,MAAMC,IAAIA,CAAA,EAAG;MACX,OAAOR,QAAQ,CAACO,IAAI,CAAO,MAAM,EAAE,EAAE,CAAC;IACxC,CAAC;IACDE,YAAYA,CAACC,KAAK,EAAEC,UAAU,EAAE;MAC9B,OAAOX,QAAQ,CAACO,IAAI,CAAU,cAAc,EAAE,CAACG,KAAK,EAAEC,UAAU,CAAC,CAAC;IACpE;EACF,CAAC,CAAC,CAAC;EAEH,MAAMC,qBAAqB,GAAGpB,OAAO,CAAC,MAAM;IAC1C,MAAMqB,oBAAoB,GAAGf,KAAK,CAACgB,eAAe;IAClD,IAAID,oBAAoB,IAAI,IAAI,EAAE;MAChC,OAAQE,KAAyD,IAAK;QACpEF,oBAAoB,CAACE,KAAK,CAACC,WAAW,CAACC,OAAO,CAAC;MACjD,CAAC;IACH,CAAC,MAAM;MACL,OAAOC,SAAS;IAClB;EACF,CAAC,EAAE,CAACpB,KAAK,CAACgB,eAAe,CAAC,CAAC;EAE3B,oBACE3B,KAAA,CAAAgC,aAAA,CAACC,aAAa,EAAAC,QAAA,KACRvB,KAAK;IACTwB,gBAAgB,EAAExB,KAAK,CAACgB,eAAe,IAAI,IAAK;IAChDA,eAAe,EAAEF,qBAAsB;IACvCb,GAAG,EAAEE;EAAe,EACrB,CAAC;AAEN,CAAC,CACH,CAAC;AAeD,MAAMmB,aAAa,GAAG1B,cAAoC"}
@@ -0,0 +1,6 @@
1
+ import { TurboModuleRegistry } from 'react-native';
2
+
3
+ // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-unused-vars
4
+
5
+ export default TurboModuleRegistry.getEnforcing('RNMBXCameraModule');
6
+ //# sourceMappingURL=NativeRNMBXCameraModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeRNMBXCameraModule.ts"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,cAAc;;AA0BlD;;AAOA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,mBAAmB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { findNodeHandle } from 'react-native';
2
+ export class NativeCommands {
3
+ constructor(module) {
4
+ this.module = module;
5
+ this.preRefMethodQueue = [];
6
+ }
7
+ async setNativeRef(nativeRef) {
8
+ if (nativeRef) {
9
+ this.nativeRef = nativeRef;
10
+ while (this.preRefMethodQueue.length > 0) {
11
+ const item = this.preRefMethodQueue.pop();
12
+ if (item && item.method && item.resolver) {
13
+ const res = await this._call(item.method.name, nativeRef, item.method.args);
14
+ item.resolver(res);
15
+ }
16
+ }
17
+ }
18
+ }
19
+ call(name, args) {
20
+ if (this.nativeRef) {
21
+ return this._call(name, this.nativeRef, args);
22
+ } else {
23
+ return new Promise(resolve => {
24
+ this.preRefMethodQueue.push({
25
+ method: {
26
+ name,
27
+ args
28
+ },
29
+ resolver: resolve
30
+ });
31
+ });
32
+ }
33
+ }
34
+ _call(name, nativeRef, args) {
35
+ const handle = findNodeHandle(nativeRef);
36
+ if (handle) {
37
+ return this.module[name](handle, ...args);
38
+ } else {
39
+ throw new Error(`Could not find handle for native ref ${module} when trying to invoke ${String(name)}`);
40
+ }
41
+ }
42
+ }
43
+ //# sourceMappingURL=NativeCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["findNodeHandle","NativeCommands","constructor","module","preRefMethodQueue","setNativeRef","nativeRef","length","item","pop","method","resolver","res","_call","name","args","call","Promise","resolve","push","handle","Error","String"],"sourceRoot":"../../../src","sources":["utils/NativeCommands.ts"],"mappings":"AAAA,SAAqBA,cAAc,QAAQ,cAAc;AAqBzD,OAAO,MAAMC,cAAc,CAAsB;EAU/CC,WAAWA,CAACC,MAAY,EAAE;IACxB,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,iBAAiB,GAAG,EAAE;EAC7B;EAEA,MAAMC,YAAYA,CAACC,SAAkB,EAAE;IACrC,IAAIA,SAAS,EAAE;MACb,IAAI,CAACA,SAAS,GAAGA,SAAS;MAC1B,OAAO,IAAI,CAACF,iBAAiB,CAACG,MAAM,GAAG,CAAC,EAAE;QACxC,MAAMC,IAAI,GAAG,IAAI,CAACJ,iBAAiB,CAACK,GAAG,CAAC,CAAC;QAEzC,IAAID,IAAI,IAAIA,IAAI,CAACE,MAAM,IAAIF,IAAI,CAACG,QAAQ,EAAE;UACxC,MAAMC,GAAG,GAAG,MAAM,IAAI,CAACC,KAAK,CAC1BL,IAAI,CAACE,MAAM,CAACI,IAAI,EAChBR,SAAS,EACTE,IAAI,CAACE,MAAM,CAACK,IACd,CAAC;UACDP,IAAI,CAACG,QAAQ,CAACC,GAAG,CAAC;QACpB;MACF;IACF;EACF;EAEAI,IAAIA,CAAIF,IAAwB,EAAEC,IAAiB,EAAc;IAC/D,IAAI,IAAI,CAACT,SAAS,EAAE;MAClB,OAAO,IAAI,CAACO,KAAK,CAACC,IAAI,EAAE,IAAI,CAACR,SAAS,EAAES,IAAI,CAAC;IAC/C,CAAC,MAAM;MACL,OAAO,IAAIE,OAAO,CAAEC,OAAO,IAAK;QAC9B,IAAI,CAACd,iBAAiB,CAACe,IAAI,CAAC;UAC1BT,MAAM,EAAE;YAAEI,IAAI;YAAEC;UAAK,CAAC;UACtBJ,QAAQ,EAAEO;QACZ,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EACF;EAEAL,KAAKA,CACHC,IAAwB,EACxBR,SAAkB,EAClBS,IAAiB,EACL;IACZ,MAAMK,MAAM,GAAGpB,cAAc,CAACM,SAAS,CAAC;IACxC,IAAIc,MAAM,EAAE;MACV,OACE,IAAI,CAACjB,MAAM,CAACW,IAAI,CAAC,CAIjBM,MAAM,EAAE,GAAGL,IAAI,CAAC;IACpB,CAAC,MAAM;MACL,MAAM,IAAIM,KAAK,CACZ,wCAAuClB,MAAO,0BAAyBmB,MAAM,CAC5ER,IACF,CAAE,EACJ,CAAC;IACH;EACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../src/components/Camera.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../src/components/Camera.tsx"],"names":[],"mappings":"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"}
@@ -129,8 +129,5 @@ export interface Ref {
129
129
  */
130
130
  export declare const Viewport: React.MemoExoticComponent<React.ForwardRefExoticComponent<Props & React.RefAttributes<Ref>>>;
131
131
  export type Viewport = Ref;
132
- export type NativeArg = string | number | boolean | null | {
133
- [k: string]: NativeArg;
134
- } | NativeArg[] | Function | GeoJSON.Geometry | undefined;
135
132
  export {};
136
133
  //# sourceMappingURL=Viewport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../../../src/components/Viewport.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../../../src/components/Viewport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAUf,KAAK,iBAAiB,GAAG;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD;;;;OAIG;IACH,OAAO,CAAC,EACJ;QACE,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACD,MAAM,CAAC;CACZ,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAE3B;;;;OAIG;IACH,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,aAAa,GACd;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEN,KAAK,cAAc,GACf;IACE,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEN,KAAK,kBAAkB,GACnB;IACE,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEN,KAAK,0BAA0B,GAC3B,mBAAmB,GACnB,qBAAqB,GACrB,eAAe,GACf,iBAAiB,CAAC;AAEtB,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,0BAA0B,CAAC;CACpC,CAAC;AAEF,KAAK,KAAK,GAAG;IACX;;;;;;OAMG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAE/C;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;CAC/D,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,YAAY,CACV,KAAK,EAAE,aAAa,EACpB,UAAU,CAAC,EAAE,kBAAkB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,8FA4CpB,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport';
2
+ import { Int32 } from 'react-native/Libraries/Types/CodegenTypes';
3
+ type ViewRef = Int32 | null;
4
+ interface NativeCameraStop {
5
+ centerCoordinate?: string;
6
+ bounds?: string;
7
+ heading?: number;
8
+ pitch?: number;
9
+ zoom?: number;
10
+ paddingLeft?: number;
11
+ paddingRight?: number;
12
+ paddingTop?: number;
13
+ paddingBottom?: number;
14
+ duration?: number;
15
+ mode?: NativeAnimationMode;
16
+ }
17
+ type Stop = {
18
+ stops: NativeCameraStop[];
19
+ } | NativeCameraStop;
20
+ type NativeAnimationMode = 'flight' | 'ease' | 'linear' | 'none' | 'move';
21
+ type ObjectOr<T> = Object;
22
+ export interface Spec extends TurboModule {
23
+ updateCameraStop(viewRef: ViewRef, stops: ObjectOr<Stop>): Promise<void>;
24
+ }
25
+ declare const _default: Spec;
26
+ export default _default;
27
+ //# sourceMappingURL=NativeRNMBXCameraModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeRNMBXCameraModule.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeRNMBXCameraModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AAGlE,KAAK,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;AAE5B,UAAU,gBAAgB;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC5B;AAED,KAAK,IAAI,GACL;IACE,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B,GACD,gBAAgB,CAAC;AAErB,KAAK,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAG1E,KAAK,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC;AAE1B,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;;AAED,wBAA2E"}
@@ -0,0 +1,25 @@
1
+ /// <reference types="react" />
2
+ export type NativeArg = string | number | boolean | null | {
3
+ [k: string]: NativeArg;
4
+ } | NativeArg[] | Function | GeoJSON.Geometry | undefined;
5
+ type FunctionKeys<T> = keyof {
6
+ [K in keyof T as T[K] extends Function ? K : never]: T[K];
7
+ };
8
+ type RefType = React.Component;
9
+ export declare class NativeCommands<Spec extends object> {
10
+ module: Spec;
11
+ preRefMethodQueue: Array<{
12
+ method: {
13
+ name: FunctionKeys<Spec>;
14
+ args: NativeArg[];
15
+ };
16
+ resolver: (value: unknown) => void;
17
+ }>;
18
+ nativeRef: RefType | undefined;
19
+ constructor(module: Spec);
20
+ setNativeRef(nativeRef: RefType): Promise<void>;
21
+ call<T>(name: FunctionKeys<Spec>, args: NativeArg[]): Promise<T>;
22
+ _call<T>(name: FunctionKeys<Spec>, nativeRef: RefType, args: NativeArg[]): Promise<T>;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=NativeCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeCommands.d.ts","sourceRoot":"","sources":["../../../../src/utils/NativeCommands.ts"],"names":[],"mappings":";AAEA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1B,SAAS,EAAE,GAEX,QAAQ,GACR,OAAO,CAAC,QAAQ,GAChB,SAAS,CAAC;AAEd,KAAK,YAAY,CAAC,CAAC,IAAI,MAAM;KAE1B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,KAAK,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;AAE/B,qBAAa,cAAc,CAAC,IAAI,SAAS,MAAM;IAC7C,MAAM,EAAE,IAAI,CAAC;IAEb,iBAAiB,EAAE,KAAK,CAAC;QACvB,MAAM,EAAE;YAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;YAAC,IAAI,EAAE,SAAS,EAAE,CAAA;SAAE,CAAC;QACxD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;KACpC,CAAC,CAAC;IAEH,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;gBAEnB,MAAM,EAAE,IAAI;IAKlB,YAAY,CAAC,SAAS,EAAE,OAAO;IAkBrC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAahE,KAAK,CAAC,CAAC,EACL,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EACxB,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,SAAS,EAAE,GAChB,OAAO,CAAC,CAAC,CAAC;CAiBd"}
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.12",
4
+ "version": "10.1.14",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
package/setup-jest.js CHANGED
@@ -186,6 +186,10 @@ NativeModules.RNMBXViewportModule = {
186
186
  getState: jest.fn(),
187
187
  };
188
188
 
189
+ NativeModules.RNMBXCameraModule = {
190
+ updateCameraStop: jest.fn(),
191
+ };
192
+
189
193
  NativeModules.RNMBXTileStoreModule = {
190
194
  setOptions: jest.fn(),
191
195
  shared: jest.fn(),
@@ -2,6 +2,7 @@ import React, {
2
2
  forwardRef,
3
3
  memo,
4
4
  useCallback,
5
+ useEffect,
5
6
  useImperativeHandle,
6
7
  useMemo,
7
8
  useRef,
@@ -13,6 +14,8 @@ import { type Position } from '../types/Position';
13
14
  import { makeLatLngBounds, makePoint } from '../utils/geoUtils';
14
15
  import { type NativeRefType } from '../utils/nativeRef';
15
16
  import NativeCameraView from '../specs/RNMBXCameraNativeComponent';
17
+ import RNMBXCameraModule from '../specs/NativeRNMBXCameraModule';
18
+ import { NativeCommands, type NativeArg } from '../utils/NativeCommands';
16
19
 
17
20
  const NativeModule = NativeModules.RNMBXModule;
18
21
 
@@ -250,6 +253,15 @@ export const Camera = memo(
250
253
  null,
251
254
  ) as NativeRefType<NativeCameraProps>;
252
255
 
256
+ const commands = useMemo(() => new NativeCommands(RNMBXCameraModule), []);
257
+
258
+ useEffect(() => {
259
+ if (nativeCamera.current) {
260
+ commands.setNativeRef(nativeCamera.current);
261
+ }
262
+ // eslint-disable-next-line react-hooks/exhaustive-deps
263
+ }, [commands, nativeCamera.current]);
264
+
253
265
  const buildNativeStop = useCallback(
254
266
  (
255
267
  stop: CameraStop,
@@ -380,8 +392,6 @@ export const Camera = memo(
380
392
  return;
381
393
  }
382
394
 
383
- lastTS += 1;
384
-
385
395
  if (!config.type)
386
396
  // @ts-expect-error The compiler doesn't understand that the `config` union type is guaranteed
387
397
  // to be an object type.
@@ -399,22 +409,26 @@ export const Camera = memo(
399
409
  if (_nativeStop) {
400
410
  _nativeStops = [..._nativeStops, _nativeStop];
401
411
  }
402
- nativeCamera.current?.setNativeProps({
403
- stop: { stops: _nativeStops, __updateTS: lastTS },
404
- });
412
+
413
+ commands.call<void>('updateCameraStop', [
414
+ {
415
+ stops: _nativeStops,
416
+ } as unknown as NativeArg[],
417
+ ]);
405
418
  }
406
419
  } else if (config.type === 'CameraStop') {
407
420
  const _nativeStop = buildNativeStop(config);
408
421
  if (_nativeStop) {
409
- nativeCamera.current?.setNativeProps({
410
- stop: { __updateTS: lastTS, ..._nativeStop },
411
- });
422
+ commands.call<void>('updateCameraStop', [
423
+ _nativeStop as unknown as NativeArg,
424
+ ]);
412
425
  }
413
426
  }
414
427
  };
415
428
  const setCamera = useCallback(_setCamera, [
416
429
  allowUpdates,
417
430
  buildNativeStop,
431
+ commands,
418
432
  ]);
419
433
 
420
434
  const _fitBounds: CameraRef['fitBounds'] = (
@@ -594,8 +608,6 @@ export const Camera = memo(
594
608
  ),
595
609
  );
596
610
 
597
- let lastTS = 0;
598
-
599
611
  const RNMBXCamera = NativeCameraView;
600
612
 
601
613
  export type Camera = CameraRef;
@@ -7,18 +7,14 @@ import React, {
7
7
  useMemo,
8
8
  useRef,
9
9
  } from 'react';
10
- import {
11
- NodeHandle,
12
- findNodeHandle,
13
- type NativeMethods,
14
- type NativeSyntheticEvent,
15
- } from 'react-native';
10
+ import { type NativeMethods, type NativeSyntheticEvent } from 'react-native';
16
11
 
17
12
  import NativeViewport, {
18
13
  type NativeViewportReal,
19
14
  type OnStatusChangedEventTypeReal,
20
15
  } from '../specs/RNMBXViewportNativeComponent';
21
16
  import RNMBXViewportModule from '../specs/NativeRNMBXViewportModule';
17
+ import { NativeCommands } from '../utils/NativeCommands';
22
18
 
23
19
  type FollowPuckOptions = {
24
20
  /**
@@ -240,91 +236,3 @@ type NativeProps = Omit<Props, 'onStatusChanged'> & {
240
236
  type RNMBXViewportRefType = Component<NativeProps> & Readonly<NativeMethods>;
241
237
 
242
238
  const RNMBXViewport = NativeViewport as NativeViewportReal;
243
-
244
- export type NativeArg =
245
- | string
246
- | number
247
- | boolean
248
- | null
249
- | { [k: string]: NativeArg }
250
- | NativeArg[]
251
- // eslint-disable-next-line @typescript-eslint/ban-types
252
- | Function
253
- | GeoJSON.Geometry
254
- | undefined;
255
-
256
- type FunctionKeys<T> = keyof {
257
- // eslint-disable-next-line @typescript-eslint/ban-types
258
- [K in keyof T as T[K] extends Function ? K : never]: T[K];
259
- };
260
-
261
- type RefType = React.Component;
262
-
263
- class NativeCommands<Spec extends object> {
264
- module: Spec;
265
-
266
- preRefMethodQueue: Array<{
267
- method: { name: FunctionKeys<Spec>; args: NativeArg[] };
268
- resolver: (value: unknown) => void;
269
- }>;
270
-
271
- nativeRef: RefType | undefined;
272
-
273
- constructor(module: Spec) {
274
- this.module = module;
275
- this.preRefMethodQueue = [];
276
- }
277
-
278
- async setNativeRef(nativeRef: RefType) {
279
- if (nativeRef) {
280
- this.nativeRef = nativeRef;
281
- while (this.preRefMethodQueue.length > 0) {
282
- const item = this.preRefMethodQueue.pop();
283
-
284
- if (item && item.method && item.resolver) {
285
- const res = await this._call(
286
- item.method.name,
287
- nativeRef,
288
- item.method.args,
289
- );
290
- item.resolver(res);
291
- }
292
- }
293
- }
294
- }
295
-
296
- call<T>(name: FunctionKeys<Spec>, args: NativeArg[]): Promise<T> {
297
- if (this.nativeRef) {
298
- return this._call(name, this.nativeRef, args);
299
- } else {
300
- return new Promise((resolve) => {
301
- this.preRefMethodQueue.push({
302
- method: { name, args },
303
- resolver: resolve as (args: unknown) => void,
304
- });
305
- });
306
- }
307
- }
308
-
309
- _call<T>(
310
- name: FunctionKeys<Spec>,
311
- nativeRef: RefType,
312
- args: NativeArg[],
313
- ): Promise<T> {
314
- const handle = findNodeHandle(nativeRef);
315
- if (handle) {
316
- return (
317
- this.module[name] as (
318
- arg0: NodeHandle,
319
- ...args: NativeArg[]
320
- ) => Promise<T>
321
- )(handle, ...args);
322
- } else {
323
- throw new Error(
324
- `Could not find handle for native ref ${module} when trying to invoke ${String(
325
- name,
326
- )}`,
327
- );
328
- }
329
- }
330
- }
@@ -0,0 +1,36 @@
1
+ import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport';
2
+ import { Int32 } from 'react-native/Libraries/Types/CodegenTypes';
3
+ import { TurboModuleRegistry } from 'react-native';
4
+
5
+ type ViewRef = Int32 | null;
6
+
7
+ interface NativeCameraStop {
8
+ centerCoordinate?: string;
9
+ bounds?: string;
10
+ heading?: number;
11
+ pitch?: number;
12
+ zoom?: number;
13
+ paddingLeft?: number;
14
+ paddingRight?: number;
15
+ paddingTop?: number;
16
+ paddingBottom?: number;
17
+ duration?: number;
18
+ mode?: NativeAnimationMode;
19
+ }
20
+
21
+ type Stop =
22
+ | {
23
+ stops: NativeCameraStop[];
24
+ }
25
+ | NativeCameraStop;
26
+
27
+ type NativeAnimationMode = 'flight' | 'ease' | 'linear' | 'none' | 'move';
28
+
29
+ // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-unused-vars
30
+ type ObjectOr<T> = Object;
31
+
32
+ export interface Spec extends TurboModule {
33
+ updateCameraStop(viewRef: ViewRef, stops: ObjectOr<Stop>): Promise<void>;
34
+ }
35
+
36
+ export default TurboModuleRegistry.getEnforcing<Spec>('RNMBXCameraModule');