@rnmapbox/maps 10.2.8 → 10.2.10-rc.2

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 (29) hide show
  1. package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +2 -0
  2. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXCustomLocationProvider.kt +7 -0
  3. package/android/src/main/java/com/rnmapbox/rnmbx/events/MapSteadyEvent.kt +50 -0
  4. package/android/src/main/java/com/rnmapbox/rnmbx/events/RNMBXCameraGestureObserver.kt +296 -0
  5. package/android/src/main/java/com/rnmapbox/rnmbx/events/RNMBXCameraGestureObserverManager.kt +74 -0
  6. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraGestureObserverManagerDelegate.java +39 -0
  7. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraGestureObserverManagerInterface.java +18 -0
  8. package/ios/RNMBX/RNMBXCameraGestureObserver.swift +218 -0
  9. package/ios/RNMBX/RNMBXCameraGestureObserverComponentView.h +15 -0
  10. package/ios/RNMBX/RNMBXCameraGestureObserverComponentView.mm +119 -0
  11. package/ios/RNMBX/RNMBXCustomLocationProvider.swift +4 -0
  12. package/ios/RNMBX/RNMBXMapView.swift +50 -6
  13. package/ios/RNMBX/RNMBXRasterArraySourceComponentView.mm +4 -11
  14. package/ios/RNMBX/RNMBXRasterParticleLayerComponentView.mm +4 -15
  15. package/lib/module/Mapbox.native.js +2 -0
  16. package/lib/module/Mapbox.native.js.map +1 -1
  17. package/lib/module/components/CameraGestureObserver.js +17 -0
  18. package/lib/module/components/CameraGestureObserver.js.map +1 -0
  19. package/lib/module/specs/RNMBXCameraGestureObserverNativeComponent.ts +28 -0
  20. package/lib/typescript/src/Mapbox.native.d.ts +2 -0
  21. package/lib/typescript/src/Mapbox.native.d.ts.map +1 -1
  22. package/lib/typescript/src/components/CameraGestureObserver.d.ts +27 -0
  23. package/lib/typescript/src/components/CameraGestureObserver.d.ts.map +1 -0
  24. package/lib/typescript/src/specs/RNMBXCameraGestureObserverNativeComponent.d.ts +20 -0
  25. package/lib/typescript/src/specs/RNMBXCameraGestureObserverNativeComponent.d.ts.map +1 -0
  26. package/package.json +7 -2
  27. package/src/Mapbox.native.ts +2 -0
  28. package/src/components/CameraGestureObserver.tsx +37 -0
  29. package/src/specs/RNMBXCameraGestureObserverNativeComponent.ts +28 -0
@@ -0,0 +1,27 @@
1
+ import type { ViewProps } from 'react-native';
2
+ import { OnMapSteadyEvent } from '../specs/RNMBXCameraGestureObserverNativeComponent';
3
+ type Props = ViewProps & {
4
+ /**
5
+ * Time in milliseconds to wait after last camera change before emitting 'steady' event.
6
+ * Default is 200ms.
7
+ */
8
+ quietPeriodMs?: number;
9
+ /**
10
+ * Maximum time in milliseconds before emitting 'timeout' event during continuous activity.
11
+ */
12
+ maxIntervalMs?: number;
13
+ /**
14
+ * Callback when the map reaches a steady state (no active gestures or animations).
15
+ */
16
+ onMapSteady?: (event: {
17
+ nativeEvent: OnMapSteadyEvent;
18
+ }) => void;
19
+ };
20
+ /**
21
+ * CameraGestureObserver
22
+ *
23
+ * Unified native observer optimized for onMapSteady.
24
+ */
25
+ declare const _default: import("react").MemoExoticComponent<(props: Props) => import("react/jsx-runtime").JSX.Element>;
26
+ export default _default;
27
+ //# sourceMappingURL=CameraGestureObserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CameraGestureObserver.d.ts","sourceRoot":"","sources":["../../../../src/components/CameraGestureObserver.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAkD,EAChD,gBAAgB,EACjB,MAAM,oDAAoD,CAAC;AAE5D,KAAK,KAAK,GAAG,SAAS,GAAG;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,gBAAgB,CAAA;KAAE,KAAK,IAAI,CAAC;CAClE,CAAC;AAEF;;;;GAIG;oEACyB,KAAK;AAAjC,wBAOG"}
@@ -0,0 +1,20 @@
1
+ import type { ViewProps } from 'react-native';
2
+ import { DirectEventHandler, Double } from 'react-native/Libraries/Types/CodegenTypes';
3
+ import type { UnsafeMixed } from './codegenUtils';
4
+ export type OnMapSteadyEvent = {
5
+ reason: 'steady' | 'timeout';
6
+ idleDurationMs?: Double;
7
+ lastGestureType?: string | null | undefined;
8
+ timestamp: Double;
9
+ };
10
+ export interface NativeProps extends ViewProps {
11
+ quietPeriodMs?: UnsafeMixed<number>;
12
+ maxIntervalMs?: UnsafeMixed<number>;
13
+ hasOnMapSteady: UnsafeMixed<boolean>;
14
+ onMapSteady?: DirectEventHandler<OnMapSteadyEvent>;
15
+ }
16
+ declare const _default: (props: Omit<NativeProps, "ref"> & {
17
+ ref?: React.Ref<import("react-native").HostInstance>;
18
+ }) => React.ReactNode;
19
+ export default _default;
20
+ //# sourceMappingURL=RNMBXCameraGestureObserverNativeComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RNMBXCameraGestureObserverNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/specs/RNMBXCameraGestureObserverNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAG,MAAM,2CAA2C,CAAC;AAExF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE7B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE5C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAEpC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CACpD;;;;AAED,wBAEE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnmapbox/maps",
3
- "version": "10.2.8",
3
+ "version": "10.2.10-rc.2",
4
4
  "description": "Community-supported, open-source React Native library for building maps using Mapbox native maps SDK for iOS and Android",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.native.d.ts",
@@ -11,7 +11,8 @@
11
11
  "default": "./lib/module/index.js"
12
12
  },
13
13
  "./package.json": "./package.json",
14
- "./app.plugin.js": "./app.plugin.js"
14
+ "./app.plugin.js": "./app.plugin.js",
15
+ "./setup-jest": "./setup-jest.js"
15
16
  },
16
17
  "files": [
17
18
  "src",
@@ -200,6 +201,9 @@
200
201
  "RNMBXCallout": {
201
202
  "className": "RNMBXCalloutComponentView"
202
203
  },
204
+ "RNMBXCameraGestureObserver": {
205
+ "className": "RNMBXCameraGestureObserverComponentView"
206
+ },
203
207
  "RNMBXCamera": {
204
208
  "className": "RNMBXCameraComponentView"
205
209
  },
@@ -295,6 +299,7 @@
295
299
  "RNMBXAtmosphere": "RNMBXAtmosphereComponentView",
296
300
  "RNMBXBackgroundLayer": "RNMBXBackgroundLayerComponentView",
297
301
  "RNMBXCallout": "RNMBXCalloutComponentView",
302
+ "RNMBXCameraGestureObserver": "RNMBXCameraGestureObserverComponentView",
298
303
  "RNMBXCamera": "RNMBXCameraComponentView",
299
304
  "RNMBXCircleLayer": "RNMBXCircleLayerComponentView",
300
305
  "RNMBXCustomLocationProvider": "RNMBXCustomLocationProviderComponentView",
@@ -43,6 +43,8 @@ export { default as RasterParticleLayer } from './components/RasterParticleLayer
43
43
  export { default as BackgroundLayer } from './components/BackgroundLayer';
44
44
  export { default as CustomLocationProvider } from './components/CustomLocationProvider';
45
45
  export { Terrain } from './components/Terrain';
46
+ export { default as CameraGestureObserver } from './components/CameraGestureObserver';
47
+ export { OnMapSteadyEvent } from './specs/RNMBXCameraGestureObserverNativeComponent';
46
48
  export {
47
49
  default as locationManager,
48
50
  type Location,
@@ -0,0 +1,37 @@
1
+ import { memo } from 'react';
2
+ import type { ViewProps } from 'react-native';
3
+ import RNMBXCameraGestureObserverNativeComponent, {
4
+ OnMapSteadyEvent,
5
+ } from '../specs/RNMBXCameraGestureObserverNativeComponent';
6
+
7
+ type Props = ViewProps & {
8
+ /**
9
+ * Time in milliseconds to wait after last camera change before emitting 'steady' event.
10
+ * Default is 200ms.
11
+ */
12
+ quietPeriodMs?: number;
13
+
14
+ /**
15
+ * Maximum time in milliseconds before emitting 'timeout' event during continuous activity.
16
+ */
17
+ maxIntervalMs?: number;
18
+
19
+ /**
20
+ * Callback when the map reaches a steady state (no active gestures or animations).
21
+ */
22
+ onMapSteady?: (event: { nativeEvent: OnMapSteadyEvent }) => void;
23
+ };
24
+
25
+ /**
26
+ * CameraGestureObserver
27
+ *
28
+ * Unified native observer optimized for onMapSteady.
29
+ */
30
+ export default memo((props: Props) => {
31
+ return (
32
+ <RNMBXCameraGestureObserverNativeComponent
33
+ {...props}
34
+ hasOnMapSteady={props.onMapSteady ? true : false}
35
+ />
36
+ );
37
+ });
@@ -0,0 +1,28 @@
1
+ import type { ViewProps } from 'react-native';
2
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
3
+ // @ts-ignore - CI environment type resolution issue for CodegenTypes
4
+ import { DirectEventHandler, Double, } from 'react-native/Libraries/Types/CodegenTypes';
5
+
6
+ import type { UnsafeMixed } from './codegenUtils';
7
+
8
+ export type OnMapSteadyEvent = {
9
+ reason: 'steady' | 'timeout';
10
+ // ms since last camera change when reason === 'steady'
11
+ idleDurationMs?: Double;
12
+ // e.g., 'pan' | 'pinch' | 'rotate' | 'pitch'
13
+ lastGestureType?: string | null | undefined;
14
+ // Unix epoch in milliseconds
15
+ timestamp: Double;
16
+ };
17
+
18
+ export interface NativeProps extends ViewProps {
19
+ quietPeriodMs?: UnsafeMixed<number>;
20
+ maxIntervalMs?: UnsafeMixed<number>;
21
+
22
+ hasOnMapSteady: UnsafeMixed<boolean>;
23
+ onMapSteady?: DirectEventHandler<OnMapSteadyEvent>;
24
+ }
25
+
26
+ export default codegenNativeComponent<NativeProps>(
27
+ 'RNMBXCameraGestureObserver',
28
+ );