@rnmapbox/maps 10.2.7 → 10.2.9
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/android/build.gradle +9 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +10 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXCustomLocationProvider.kt +7 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +7 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleFactory.kt +180 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleValue.kt +4 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/events/MapSteadyEvent.kt +50 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/events/RNMBXCameraGestureObserver.kt +296 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/events/RNMBXCameraGestureObserverManager.kt +74 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXModule.kt +2 -2
- package/android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXOfflineModuleLegacy.kt +10 -0
- package/android/src/main/mapbox-v11-compat/v10/com/mapbox/maps/extension/style/layers/generated/RasterParticleLayer.kt +58 -0
- package/android/src/main/mapbox-v11-compat/v10/com/mapbox/maps/extension/style/sources/generated/RasterArraySource.kt +20 -0
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/components/styles/layers/RNMBXRasterParticleLayer.kt +22 -0
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/components/styles/layers/RNMBXRasterParticleLayerManager.kt +59 -0
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterArraySource.kt +16 -0
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterArraySourceManager.kt +59 -0
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/StyleFactory.kt +45 -0
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/components/styles/layers/RNMBXRasterParticleLayer.kt +38 -0
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/components/styles/layers/RNMBXRasterParticleLayerManager.kt +85 -0
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterArraySource.kt +41 -0
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterArraySourceManager.kt +76 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraGestureObserverManagerDelegate.java +39 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraGestureObserverManagerInterface.java +18 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterArraySourceManagerDelegate.java +54 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterArraySourceManagerInterface.java +23 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterParticleLayerManagerDelegate.java +66 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterParticleLayerManagerInterface.java +27 -0
- package/ios/RNMBX/Offline/RNMBXOfflineModuleLegacy.m +2 -0
- package/ios/RNMBX/Offline/RNMBXOfflineModuleLegacy.swift +5 -0
- package/ios/RNMBX/RNMBXCamera.swift +88 -17
- package/ios/RNMBX/RNMBXCameraGestureObserver.swift +218 -0
- package/ios/RNMBX/RNMBXCameraGestureObserverComponentView.h +15 -0
- package/ios/RNMBX/RNMBXCameraGestureObserverComponentView.mm +119 -0
- package/ios/RNMBX/RNMBXCameraModule.h +3 -2
- package/ios/RNMBX/RNMBXCameraModule.mm +8 -16
- package/ios/RNMBX/RNMBXCustomLocationProvider.swift +22 -24
- package/ios/RNMBX/RNMBXImageModule.h +3 -2
- package/ios/RNMBX/RNMBXImageModule.mm +8 -16
- package/ios/RNMBX/RNMBXImages.swift +1 -4
- package/ios/RNMBX/RNMBXInteractiveElement.swift +22 -15
- package/ios/RNMBX/RNMBXMapView.swift +118 -12
- package/ios/RNMBX/RNMBXNativeUserLocation.swift +6 -6
- package/ios/RNMBX/RNMBXPointAnnotation.swift +6 -8
- package/ios/RNMBX/RNMBXPointAnnotationModule.h +3 -2
- package/ios/RNMBX/RNMBXPointAnnotationModule.mm +8 -16
- package/ios/RNMBX/RNMBXRasterArraySource.swift +47 -0
- package/ios/RNMBX/RNMBXRasterArraySourceComponentView.h +15 -0
- package/ios/RNMBX/RNMBXRasterArraySourceComponentView.mm +161 -0
- package/ios/RNMBX/RNMBXRasterArraySourceViewManager.swift +16 -0
- package/ios/RNMBX/RNMBXRasterParticleLayer.swift +100 -0
- package/ios/RNMBX/RNMBXRasterParticleLayerComponentView.h +15 -0
- package/ios/RNMBX/RNMBXRasterParticleLayerComponentView.mm +110 -0
- package/ios/RNMBX/RNMBXRasterParticleLayerViewManager.swift +17 -0
- package/ios/RNMBX/RNMBXShapeSource.swift +5 -4
- package/ios/RNMBX/RNMBXShapeSourceModule.h +3 -2
- package/ios/RNMBX/RNMBXShapeSourceModule.mm +8 -16
- package/ios/RNMBX/RNMBXSource.swift +51 -21
- package/ios/RNMBX/RNMBXStyle.swift +152 -27
- package/ios/RNMBX/RNMBXStyleValue.swift +27 -0
- package/ios/RNMBX/RNMBXViewport.swift +13 -13
- package/ios/RNMBX/RNMBXViewportModule.h +3 -2
- package/ios/RNMBX/RNMBXViewportModule.mm +8 -16
- package/lib/commonjs/plugin/build/withMapbox.js +1 -1
- package/lib/commonjs/plugin/src/withMapbox.ts +13 -3
- package/lib/module/Mapbox.native.js +4 -0
- package/lib/module/Mapbox.native.js.map +1 -1
- package/lib/module/RNMBXModule.js.map +1 -1
- package/lib/module/components/CameraGestureObserver.js +17 -0
- package/lib/module/components/CameraGestureObserver.js.map +1 -0
- package/lib/module/components/PointAnnotation.js.map +1 -1
- package/lib/module/components/RasterArraySource.js +67 -0
- package/lib/module/components/RasterArraySource.js.map +1 -0
- package/lib/module/components/RasterParticleLayer.js +40 -0
- package/lib/module/components/RasterParticleLayer.js.map +1 -0
- package/lib/module/modules/offline/offlineManagerLegacy.js +14 -0
- package/lib/module/modules/offline/offlineManagerLegacy.js.map +1 -1
- package/lib/module/specs/RNMBXCameraGestureObserverNativeComponent.ts +28 -0
- package/lib/module/specs/RNMBXRasterArraySourceNativeComponent.ts +22 -0
- package/lib/module/specs/RNMBXRasterParticleLayerNativeComponent.ts +39 -0
- package/lib/module/utils/MapboxStyles.js.map +1 -1
- package/lib/module/utils/styleMap.js +9 -0
- package/lib/module/utils/styleMap.js.map +1 -1
- package/lib/typescript/plugin/src/withMapbox.d.ts.map +1 -1
- package/lib/typescript/scripts/autogenHelpers/generateCodeWithEjs.d.mts.map +1 -1
- package/lib/typescript/scripts/autogenHelpers/globals.d.mts +1 -1
- package/lib/typescript/scripts/autogenHelpers/globals.d.mts.map +1 -1
- package/lib/typescript/src/Mapbox.native.d.ts +5 -1
- package/lib/typescript/src/Mapbox.native.d.ts.map +1 -1
- package/lib/typescript/src/RNMBXModule.d.ts.map +1 -1
- package/lib/typescript/src/components/CameraGestureObserver.d.ts +27 -0
- package/lib/typescript/src/components/CameraGestureObserver.d.ts.map +1 -0
- package/lib/typescript/src/components/PointAnnotation.d.ts +1 -1
- package/lib/typescript/src/components/PointAnnotation.d.ts.map +1 -1
- package/lib/typescript/src/components/RasterArraySource.d.ts +72 -0
- package/lib/typescript/src/components/RasterArraySource.d.ts.map +1 -0
- package/lib/typescript/src/components/RasterParticleLayer.d.ts +80 -0
- package/lib/typescript/src/components/RasterParticleLayer.d.ts.map +1 -0
- package/lib/typescript/src/modules/offline/offlineManagerLegacy.d.ts +11 -0
- package/lib/typescript/src/modules/offline/offlineManagerLegacy.d.ts.map +1 -1
- package/lib/typescript/src/specs/RNMBXCameraGestureObserverNativeComponent.d.ts +20 -0
- package/lib/typescript/src/specs/RNMBXCameraGestureObserverNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXRasterArraySourceNativeComponent.d.ts +16 -0
- package/lib/typescript/src/specs/RNMBXRasterArraySourceNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXRasterParticleLayerNativeComponent.d.ts +25 -0
- package/lib/typescript/src/specs/RNMBXRasterParticleLayerNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/utils/MapboxStyles.d.ts +44 -2
- package/lib/typescript/src/utils/MapboxStyles.d.ts.map +1 -1
- package/lib/typescript/src/utils/styleMap.d.ts.map +1 -1
- package/package.json +19 -2
- package/plugin/build/withMapbox.js +1 -1
- package/plugin/src/withMapbox.ts +13 -3
- package/rnmapbox-maps.podspec +1 -1
- package/src/Mapbox.native.ts +5 -0
- package/src/RNMBXModule.ts +1 -4
- package/src/components/CameraGestureObserver.tsx +37 -0
- package/src/components/PointAnnotation.tsx +2 -2
- package/src/components/RasterArraySource.tsx +134 -0
- package/src/components/RasterParticleLayer.tsx +117 -0
- package/src/modules/offline/offlineManagerLegacy.ts +14 -0
- package/src/specs/RNMBXCameraGestureObserverNativeComponent.ts +28 -0
- package/src/specs/RNMBXRasterArraySourceNativeComponent.ts +22 -0
- package/src/specs/RNMBXRasterParticleLayerNativeComponent.ts +39 -0
- package/src/utils/MapboxStyles.ts +47 -1
- package/src/utils/styleMap.ts +10 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.DynamicFromObject;
|
|
15
|
+
import com.facebook.react.uimanager.BaseViewManager;
|
|
16
|
+
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
17
|
+
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
18
|
+
|
|
19
|
+
public class RNMBXCameraGestureObserverManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNMBXCameraGestureObserverManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
20
|
+
public RNMBXCameraGestureObserverManagerDelegate(U viewManager) {
|
|
21
|
+
super(viewManager);
|
|
22
|
+
}
|
|
23
|
+
@Override
|
|
24
|
+
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
25
|
+
switch (propName) {
|
|
26
|
+
case "quietPeriodMs":
|
|
27
|
+
mViewManager.setQuietPeriodMs(view, new DynamicFromObject(value));
|
|
28
|
+
break;
|
|
29
|
+
case "maxIntervalMs":
|
|
30
|
+
mViewManager.setMaxIntervalMs(view, new DynamicFromObject(value));
|
|
31
|
+
break;
|
|
32
|
+
case "hasOnMapSteady":
|
|
33
|
+
mViewManager.setHasOnMapSteady(view, new DynamicFromObject(value));
|
|
34
|
+
break;
|
|
35
|
+
default:
|
|
36
|
+
super.setProperty(view, propName, value);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import com.facebook.react.bridge.Dynamic;
|
|
14
|
+
public interface RNMBXCameraGestureObserverManagerInterface<T extends View> {
|
|
15
|
+
void setQuietPeriodMs(T view, Dynamic value);
|
|
16
|
+
void setMaxIntervalMs(T view, Dynamic value);
|
|
17
|
+
void setHasOnMapSteady(T view, Dynamic value);
|
|
18
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.DynamicFromObject;
|
|
15
|
+
import com.facebook.react.uimanager.BaseViewManager;
|
|
16
|
+
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
17
|
+
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
18
|
+
|
|
19
|
+
public class RNMBXRasterArraySourceManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNMBXRasterArraySourceManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
20
|
+
public RNMBXRasterArraySourceManagerDelegate(U viewManager) {
|
|
21
|
+
super(viewManager);
|
|
22
|
+
}
|
|
23
|
+
@Override
|
|
24
|
+
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
25
|
+
switch (propName) {
|
|
26
|
+
case "id":
|
|
27
|
+
mViewManager.setId(view, new DynamicFromObject(value));
|
|
28
|
+
break;
|
|
29
|
+
case "existing":
|
|
30
|
+
mViewManager.setExisting(view, new DynamicFromObject(value));
|
|
31
|
+
break;
|
|
32
|
+
case "url":
|
|
33
|
+
mViewManager.setUrl(view, new DynamicFromObject(value));
|
|
34
|
+
break;
|
|
35
|
+
case "tileUrlTemplates":
|
|
36
|
+
mViewManager.setTileUrlTemplates(view, new DynamicFromObject(value));
|
|
37
|
+
break;
|
|
38
|
+
case "minZoomLevel":
|
|
39
|
+
mViewManager.setMinZoomLevel(view, new DynamicFromObject(value));
|
|
40
|
+
break;
|
|
41
|
+
case "maxZoomLevel":
|
|
42
|
+
mViewManager.setMaxZoomLevel(view, new DynamicFromObject(value));
|
|
43
|
+
break;
|
|
44
|
+
case "tileSize":
|
|
45
|
+
mViewManager.setTileSize(view, new DynamicFromObject(value));
|
|
46
|
+
break;
|
|
47
|
+
case "sourceBounds":
|
|
48
|
+
mViewManager.setSourceBounds(view, new DynamicFromObject(value));
|
|
49
|
+
break;
|
|
50
|
+
default:
|
|
51
|
+
super.setProperty(view, propName, value);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import com.facebook.react.bridge.Dynamic;
|
|
14
|
+
public interface RNMBXRasterArraySourceManagerInterface<T extends View> {
|
|
15
|
+
void setId(T view, Dynamic value);
|
|
16
|
+
void setExisting(T view, Dynamic value);
|
|
17
|
+
void setUrl(T view, Dynamic value);
|
|
18
|
+
void setTileUrlTemplates(T view, Dynamic value);
|
|
19
|
+
void setMinZoomLevel(T view, Dynamic value);
|
|
20
|
+
void setMaxZoomLevel(T view, Dynamic value);
|
|
21
|
+
void setTileSize(T view, Dynamic value);
|
|
22
|
+
void setSourceBounds(T view, Dynamic value);
|
|
23
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.DynamicFromObject;
|
|
15
|
+
import com.facebook.react.uimanager.BaseViewManager;
|
|
16
|
+
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
17
|
+
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
18
|
+
|
|
19
|
+
public class RNMBXRasterParticleLayerManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNMBXRasterParticleLayerManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
20
|
+
public RNMBXRasterParticleLayerManagerDelegate(U viewManager) {
|
|
21
|
+
super(viewManager);
|
|
22
|
+
}
|
|
23
|
+
@Override
|
|
24
|
+
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
25
|
+
switch (propName) {
|
|
26
|
+
case "sourceID":
|
|
27
|
+
mViewManager.setSourceID(view, new DynamicFromObject(value));
|
|
28
|
+
break;
|
|
29
|
+
case "existing":
|
|
30
|
+
mViewManager.setExisting(view, new DynamicFromObject(value));
|
|
31
|
+
break;
|
|
32
|
+
case "filter":
|
|
33
|
+
mViewManager.setFilter(view, new DynamicFromObject(value));
|
|
34
|
+
break;
|
|
35
|
+
case "aboveLayerID":
|
|
36
|
+
mViewManager.setAboveLayerID(view, new DynamicFromObject(value));
|
|
37
|
+
break;
|
|
38
|
+
case "belowLayerID":
|
|
39
|
+
mViewManager.setBelowLayerID(view, new DynamicFromObject(value));
|
|
40
|
+
break;
|
|
41
|
+
case "layerIndex":
|
|
42
|
+
mViewManager.setLayerIndex(view, new DynamicFromObject(value));
|
|
43
|
+
break;
|
|
44
|
+
case "maxZoomLevel":
|
|
45
|
+
mViewManager.setMaxZoomLevel(view, new DynamicFromObject(value));
|
|
46
|
+
break;
|
|
47
|
+
case "minZoomLevel":
|
|
48
|
+
mViewManager.setMinZoomLevel(view, new DynamicFromObject(value));
|
|
49
|
+
break;
|
|
50
|
+
case "sourceLayerID":
|
|
51
|
+
mViewManager.setSourceLayerID(view, new DynamicFromObject(value));
|
|
52
|
+
break;
|
|
53
|
+
case "slot":
|
|
54
|
+
mViewManager.setSlot(view, new DynamicFromObject(value));
|
|
55
|
+
break;
|
|
56
|
+
case "id":
|
|
57
|
+
mViewManager.setId(view, new DynamicFromObject(value));
|
|
58
|
+
break;
|
|
59
|
+
case "reactStyle":
|
|
60
|
+
mViewManager.setReactStyle(view, new DynamicFromObject(value));
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
super.setProperty(view, propName, value);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import com.facebook.react.bridge.Dynamic;
|
|
14
|
+
public interface RNMBXRasterParticleLayerManagerInterface<T extends View> {
|
|
15
|
+
void setSourceID(T view, Dynamic value);
|
|
16
|
+
void setExisting(T view, Dynamic value);
|
|
17
|
+
void setFilter(T view, Dynamic value);
|
|
18
|
+
void setAboveLayerID(T view, Dynamic value);
|
|
19
|
+
void setBelowLayerID(T view, Dynamic value);
|
|
20
|
+
void setLayerIndex(T view, Dynamic value);
|
|
21
|
+
void setMaxZoomLevel(T view, Dynamic value);
|
|
22
|
+
void setMinZoomLevel(T view, Dynamic value);
|
|
23
|
+
void setSourceLayerID(T view, Dynamic value);
|
|
24
|
+
void setSlot(T view, Dynamic value);
|
|
25
|
+
void setId(T view, Dynamic value);
|
|
26
|
+
void setReactStyle(T view, Dynamic value);
|
|
27
|
+
}
|
|
@@ -14,6 +14,8 @@ RCT_EXTERN_METHOD(pausePackDownload:(NSString *)name
|
|
|
14
14
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
15
15
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
16
16
|
|
|
17
|
+
RCT_EXTERN_METHOD(setTileCountLimit:(nonnull NSNumber *)limit)
|
|
18
|
+
|
|
17
19
|
RCT_EXTERN_METHOD(getPackStatus:(NSString *)name
|
|
18
20
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
19
21
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
@@ -363,6 +363,11 @@ func getRegionByName(name: String, offlineRegions: [OfflineRegion]) -> OfflineRe
|
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
|
|
366
|
+
@objc
|
|
367
|
+
func setTileCountLimit(_ limit: NSNumber) {
|
|
368
|
+
self.offlineRegionManager.setOfflineMapboxTileCountLimitForLimit(limit.uint64Value)
|
|
369
|
+
}
|
|
370
|
+
|
|
366
371
|
@objc
|
|
367
372
|
func resetDatabase(_ resolver: @escaping RCTPromiseResolveBlock,
|
|
368
373
|
rejecter: @escaping RCTPromiseRejectBlock)
|
|
@@ -15,11 +15,46 @@ public enum RemovalReason {
|
|
|
15
15
|
case ViewRemoval, StyleChange, OnDestroy, ComponentChange, Reorder
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
/// Base protocol for all map components
|
|
19
|
+
public protocol RNMBXMapComponentProtocol: AnyObject {
|
|
20
|
+
func waitForStyleLoad() -> Bool
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/// Default implementation: most components don't need to wait for style load
|
|
24
|
+
extension RNMBXMapComponentProtocol {
|
|
25
|
+
public func waitForStyleLoad() -> Bool {
|
|
26
|
+
return false
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/// Protocol for components that can work without direct MapView access
|
|
31
|
+
public protocol RNMBXMapComponent: RNMBXMapComponentProtocol {
|
|
19
32
|
func addToMap(_ map: RNMBXMapView, style: Style)
|
|
20
33
|
func removeFromMap(_ map: RNMBXMapView, reason: RemovalReason) -> Bool
|
|
21
|
-
|
|
22
|
-
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/// Protocol for components that require a valid MapView instance for both add and remove operations.
|
|
37
|
+
/// Use this protocol when your component needs to interact with the native MapView directly.
|
|
38
|
+
/// The MapView parameter is guaranteed to be non-nil when these methods are called.
|
|
39
|
+
///
|
|
40
|
+
/// This protocol inherits from RNMBXMapComponent to ensure compatibility with existing code,
|
|
41
|
+
/// but provides default implementations of the base protocol methods that throw errors,
|
|
42
|
+
/// forcing implementers to use the mapView-aware versions.
|
|
43
|
+
public protocol RNMBXMapAndMapViewComponent: RNMBXMapComponent {
|
|
44
|
+
func addToMap(_ map: RNMBXMapView, mapView: MapView, style: Style)
|
|
45
|
+
func removeFromMap(_ map: RNMBXMapView, mapView: MapView, reason: RemovalReason) -> Bool
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/// Default implementations for RNMBXMapAndMapViewComponent that prevent accidental use of base protocol methods
|
|
49
|
+
extension RNMBXMapAndMapViewComponent {
|
|
50
|
+
public func addToMap(_ map: RNMBXMapView, style: Style) {
|
|
51
|
+
Logger.error("CRITICAL: addToMap(_:style:) called on RNMBXMapAndMapViewComponent. Use addToMap(_:mapView:style:) instead. Component: \(type(of: self))")
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public func removeFromMap(_ map: RNMBXMapView, reason: RemovalReason) -> Bool {
|
|
55
|
+
Logger.error("CRITICAL: removeFromMap(_:reason:) called on RNMBXMapAndMapViewComponent. Use removeFromMap(_:mapView:reason:) instead. Component: \(type(of: self))")
|
|
56
|
+
return false
|
|
57
|
+
}
|
|
23
58
|
}
|
|
24
59
|
|
|
25
60
|
enum CameraMode: Int {
|
|
@@ -85,7 +120,7 @@ class CameraUpdateQueue {
|
|
|
85
120
|
open class RNMBXMapComponentBase : UIView, RNMBXMapComponent {
|
|
86
121
|
private weak var _map: RNMBXMapView! = nil
|
|
87
122
|
private var _mapCallbacks: [(RNMBXMapView) -> Void] = []
|
|
88
|
-
|
|
123
|
+
|
|
89
124
|
weak var map : RNMBXMapView? {
|
|
90
125
|
return _map;
|
|
91
126
|
}
|
|
@@ -103,11 +138,7 @@ open class RNMBXMapComponentBase : UIView, RNMBXMapComponent {
|
|
|
103
138
|
_mapCallbacks.append(callback)
|
|
104
139
|
}
|
|
105
140
|
}
|
|
106
|
-
|
|
107
|
-
public func waitForStyleLoad() -> Bool {
|
|
108
|
-
return false
|
|
109
|
-
}
|
|
110
|
-
|
|
141
|
+
|
|
111
142
|
public func addToMap(_ map: RNMBXMapView, style: Style) {
|
|
112
143
|
_mapCallbacks.forEach { callback in
|
|
113
144
|
callback(map)
|
|
@@ -115,7 +146,7 @@ open class RNMBXMapComponentBase : UIView, RNMBXMapComponent {
|
|
|
115
146
|
_mapCallbacks = []
|
|
116
147
|
_map = map
|
|
117
148
|
}
|
|
118
|
-
|
|
149
|
+
|
|
119
150
|
public func removeFromMap(_ map: RNMBXMapView, reason: RemovalReason) -> Bool {
|
|
120
151
|
_mapCallbacks = []
|
|
121
152
|
_map = nil
|
|
@@ -123,8 +154,48 @@ open class RNMBXMapComponentBase : UIView, RNMBXMapComponent {
|
|
|
123
154
|
}
|
|
124
155
|
}
|
|
125
156
|
|
|
157
|
+
/// Base class for components that require MapView to be non-nil
|
|
158
|
+
open class RNMBXMapAndMapViewComponentBase : UIView, RNMBXMapAndMapViewComponent {
|
|
159
|
+
private weak var _map: RNMBXMapView! = nil
|
|
160
|
+
private var _mapCallbacks: [(RNMBXMapView) -> Void] = []
|
|
161
|
+
|
|
162
|
+
weak var map : RNMBXMapView? {
|
|
163
|
+
return _map;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
func withMapView(_ callback: @escaping (_ mapView: MapView) -> Void) {
|
|
167
|
+
withRNMBXMapView { mapView in
|
|
168
|
+
callback(mapView.mapView)
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
func withRNMBXMapView(_ callback: @escaping (_ map: RNMBXMapView) -> Void) {
|
|
173
|
+
if let map = _map {
|
|
174
|
+
callback(map)
|
|
175
|
+
} else {
|
|
176
|
+
_mapCallbacks.append(callback)
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Uses default implementation from RNMBXMapComponentProtocol extension
|
|
181
|
+
|
|
182
|
+
public func addToMap(_ map: RNMBXMapView, mapView: MapView, style: Style) {
|
|
183
|
+
_mapCallbacks.forEach { callback in
|
|
184
|
+
callback(map)
|
|
185
|
+
}
|
|
186
|
+
_mapCallbacks = []
|
|
187
|
+
_map = map
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
public func removeFromMap(_ map: RNMBXMapView, mapView: MapView, reason: RemovalReason) -> Bool {
|
|
191
|
+
_mapCallbacks = []
|
|
192
|
+
_map = nil
|
|
193
|
+
return true
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
126
197
|
@objc(RNMBXCamera)
|
|
127
|
-
open class RNMBXCamera :
|
|
198
|
+
open class RNMBXCamera : RNMBXMapAndMapViewComponentBase {
|
|
128
199
|
var cameraAnimator: BasicCameraAnimator?
|
|
129
200
|
let cameraUpdateQueue = CameraUpdateQueue()
|
|
130
201
|
|
|
@@ -519,18 +590,18 @@ open class RNMBXCamera : RNMBXMapComponentBase {
|
|
|
519
590
|
_updateCamera()
|
|
520
591
|
}
|
|
521
592
|
|
|
522
|
-
public override func addToMap(_ map: RNMBXMapView, style: Style) {
|
|
523
|
-
super.addToMap(map, style: style)
|
|
593
|
+
public override func addToMap(_ map: RNMBXMapView, mapView: MapView, style: Style) {
|
|
594
|
+
super.addToMap(map, mapView: mapView, style: style)
|
|
524
595
|
map.reactCamera = self
|
|
525
596
|
}
|
|
526
|
-
|
|
527
|
-
public override func removeFromMap(_ map: RNMBXMapView, reason: RemovalReason) -> Bool {
|
|
597
|
+
|
|
598
|
+
public override func removeFromMap(_ map: RNMBXMapView, mapView: MapView, reason: RemovalReason) -> Bool {
|
|
528
599
|
if (reason == .StyleChange) {
|
|
529
600
|
return false
|
|
530
601
|
}
|
|
531
602
|
|
|
532
|
-
|
|
533
|
-
return super.removeFromMap(map, reason:reason)
|
|
603
|
+
mapView.viewport.removeStatusObserver(self)
|
|
604
|
+
return super.removeFromMap(map, mapView: mapView, reason: reason)
|
|
534
605
|
}
|
|
535
606
|
|
|
536
607
|
@objc public func moveBy(x: Double, y: Double, animationMode: NSNumber?, animationDuration: NSNumber?, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import MapboxMaps
|
|
2
|
+
|
|
3
|
+
@objc(RNMBXCameraGestureObserver)
|
|
4
|
+
public class RNMBXCameraGestureObserver: RNMBXMapComponentBase, GestureManagerDelegate {
|
|
5
|
+
// MARK: Props from Fabric
|
|
6
|
+
@objc public var quietPeriodMs: NSNumber? = nil
|
|
7
|
+
@objc public var maxIntervalMs: NSNumber? = nil
|
|
8
|
+
|
|
9
|
+
// Event callback set from the ComponentView when JS subscribes
|
|
10
|
+
@objc public var onMapSteady: ((_ reason: String, _ idleDurationMs: NSNumber?, _ lastGestureType: String?, _ timestamp: NSNumber) -> Void)? = nil
|
|
11
|
+
|
|
12
|
+
private var hasOnMapSteady: Bool = false
|
|
13
|
+
|
|
14
|
+
@objc public func setHasOnMapSteady(_ hasOnMapSteady: Bool) {
|
|
15
|
+
self.hasOnMapSteady = hasOnMapSteady
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// MARK: Internal state
|
|
19
|
+
private var activeAnimations: Int = 0
|
|
20
|
+
private var isGestureActive: Bool = false
|
|
21
|
+
private var lastGestureType: String? = nil
|
|
22
|
+
// Time when the last transition (gesture without follow-up anim or camera animation) ended
|
|
23
|
+
private var lastTransitionEndedAtMs: Double? = nil
|
|
24
|
+
private var quietTimer: DispatchSourceTimer? = nil
|
|
25
|
+
private var timeoutTimer: DispatchSourceTimer? = nil
|
|
26
|
+
private var emittedForCurrentActivity: Bool = false
|
|
27
|
+
|
|
28
|
+
#if RNMBX_11
|
|
29
|
+
private var _cancelables = Set<AnyCancelable>()
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
private var quietMs: Double { (quietPeriodMs?.doubleValue) ?? 200.0 }
|
|
33
|
+
private var maxMs: Double? { maxIntervalMs?.doubleValue }
|
|
34
|
+
|
|
35
|
+
private func nowMs() -> Double { Date().timeIntervalSince1970 * 1000.0 }
|
|
36
|
+
private func timestamp() -> NSNumber { NSNumber(value: nowMs()) }
|
|
37
|
+
|
|
38
|
+
private var canEmitSteady: Bool {
|
|
39
|
+
activeAnimations == 0 && !isGestureActive && lastTransitionEndedAtMs != nil
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private func normalizeGestureType(_ gestureType: MapboxMaps.GestureType) -> String {
|
|
43
|
+
switch gestureType {
|
|
44
|
+
case .pan: return "pan"
|
|
45
|
+
case .pinch: return "pinch"
|
|
46
|
+
#if RNMBX_11
|
|
47
|
+
case .rotation: return "rotate"
|
|
48
|
+
#endif
|
|
49
|
+
case .pitch: return "pitch"
|
|
50
|
+
default: return "\(gestureType)"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
private func debugLog(_ message: String) {
|
|
55
|
+
#if DEBUG
|
|
56
|
+
print("[RNMBXCameraGestureObserver] \(message); activeAnimations=\(activeAnimations) isGestureActive=\(isGestureActive) lastTransitionEnd=\(lastTransitionEndedAtMs ?? -1)")
|
|
57
|
+
#endif
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private func scheduleTimer(
|
|
61
|
+
_ timer: inout DispatchSourceTimer?,
|
|
62
|
+
delay: Double,
|
|
63
|
+
handler: @escaping @convention(block) () -> Void
|
|
64
|
+
) {
|
|
65
|
+
timer?.cancel()
|
|
66
|
+
guard delay > 0 else {
|
|
67
|
+
timer = nil
|
|
68
|
+
return
|
|
69
|
+
}
|
|
70
|
+
let newTimer = DispatchSource.makeTimerSource(queue: .main)
|
|
71
|
+
newTimer.schedule(deadline: .now() + .milliseconds(Int(delay)))
|
|
72
|
+
newTimer.setEventHandler(handler: handler)
|
|
73
|
+
newTimer.resume()
|
|
74
|
+
timer = newTimer
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
private func cancelQuietTimer() {
|
|
78
|
+
quietTimer?.cancel()
|
|
79
|
+
quietTimer = nil
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
private func cancelTimeoutTimer() {
|
|
83
|
+
timeoutTimer?.cancel()
|
|
84
|
+
timeoutTimer = nil
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private func scheduleQuietCheck() {
|
|
88
|
+
let delay = quietMs
|
|
89
|
+
guard delay > 0 else {
|
|
90
|
+
cancelQuietTimer()
|
|
91
|
+
maybeEmitSteady()
|
|
92
|
+
return
|
|
93
|
+
}
|
|
94
|
+
debugLog("scheduleQuietCheck in \(Int(delay))ms")
|
|
95
|
+
scheduleTimer(&quietTimer, delay: delay) { [weak self] in
|
|
96
|
+
self?.debugLog("quiet timer fired")
|
|
97
|
+
self?.maybeEmitSteady()
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
private func scheduleTimeout() {
|
|
102
|
+
guard let delay = maxMs else { return }
|
|
103
|
+
scheduleTimer(&timeoutTimer, delay: delay) { [weak self] in
|
|
104
|
+
self?.emitTimeout()
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private func markActivity(gestureType: String? = nil) {
|
|
109
|
+
if let gestureType = gestureType { lastGestureType = gestureType }
|
|
110
|
+
emittedForCurrentActivity = false
|
|
111
|
+
scheduleQuietCheck()
|
|
112
|
+
scheduleTimeout()
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
private func maybeEmitSteady() {
|
|
116
|
+
guard canEmitSteady else { return }
|
|
117
|
+
guard let lastEnd = lastTransitionEndedAtMs else { return }
|
|
118
|
+
let sinceEnd = nowMs() - lastEnd
|
|
119
|
+
guard sinceEnd >= quietMs else { return }
|
|
120
|
+
emitSteady(idleDurationMs: sinceEnd)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
private func emitSteady(idleDurationMs: Double) {
|
|
124
|
+
if emittedForCurrentActivity { return }
|
|
125
|
+
cancelQuietTimer()
|
|
126
|
+
cancelTimeoutTimer()
|
|
127
|
+
let idleNs = NSNumber(value: idleDurationMs)
|
|
128
|
+
let gesture = lastGestureType
|
|
129
|
+
debugLog("EMIT steady idleDurationMs=\(idleDurationMs) lastGestureType=\(gesture ?? "nil")")
|
|
130
|
+
onMapSteady?("steady", idleNs, gesture, timestamp())
|
|
131
|
+
lastGestureType = nil
|
|
132
|
+
emittedForCurrentActivity = true
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
private func emitTimeout() {
|
|
136
|
+
cancelQuietTimer()
|
|
137
|
+
debugLog("EMIT timeout lastGestureType=\(lastGestureType ?? "nil")")
|
|
138
|
+
onMapSteady?("timeout", nil, lastGestureType, timestamp())
|
|
139
|
+
scheduleTimeout()
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// MARK: RNMBXMapComponent
|
|
143
|
+
public override func addToMap(_ map: RNMBXMapView, style: Style) {
|
|
144
|
+
super.addToMap(map, style: style)
|
|
145
|
+
|
|
146
|
+
guard hasOnMapSteady else { return }
|
|
147
|
+
|
|
148
|
+
#if RNMBX_11
|
|
149
|
+
let camera = map.mapView.camera!
|
|
150
|
+
|
|
151
|
+
// Camera animator lifecycle
|
|
152
|
+
_cancelables.insert(camera.onCameraAnimatorStarted.observe { [weak self] _ in
|
|
153
|
+
guard let self = self else { return }
|
|
154
|
+
self.activeAnimations += 1
|
|
155
|
+
self.lastTransitionEndedAtMs = nil
|
|
156
|
+
self.markActivity()
|
|
157
|
+
self.debugLog("camera animator started")
|
|
158
|
+
})
|
|
159
|
+
let handleAnimatorEnd: (CameraAnimator) -> Void = { [weak self] _ in
|
|
160
|
+
guard let self = self else { return }
|
|
161
|
+
self.activeAnimations -= 1
|
|
162
|
+
#if DEBUG
|
|
163
|
+
if self.activeAnimations < 0 {
|
|
164
|
+
print("[RNMBXCameraGestureObserver] WARNING: activeAnimations went negative, resetting to 0")
|
|
165
|
+
self.activeAnimations = 0
|
|
166
|
+
}
|
|
167
|
+
#endif
|
|
168
|
+
self.lastTransitionEndedAtMs = self.nowMs()
|
|
169
|
+
self.scheduleQuietCheck()
|
|
170
|
+
self.debugLog("camera animator ended")
|
|
171
|
+
}
|
|
172
|
+
_cancelables.insert(camera.onCameraAnimatorFinished.observe(handleAnimatorEnd))
|
|
173
|
+
_cancelables.insert(camera.onCameraAnimatorCancelled.observe(handleAnimatorEnd))
|
|
174
|
+
|
|
175
|
+
// Subscribe to gestures as a secondary observer (multicast from RNMBXMapView)
|
|
176
|
+
map.addGestureDelegate(self)
|
|
177
|
+
debugLog("addToMap and subscribed to gestures")
|
|
178
|
+
#endif
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
public override func removeFromMap(_ map: RNMBXMapView, reason: RemovalReason) -> Bool {
|
|
182
|
+
#if RNMBX_11
|
|
183
|
+
_cancelables.forEach { $0.cancel() }
|
|
184
|
+
_cancelables.removeAll()
|
|
185
|
+
#endif
|
|
186
|
+
map.removeGestureDelegate(self)
|
|
187
|
+
debugLog("removeFromMap and unsubscribed from gestures")
|
|
188
|
+
cancelQuietTimer()
|
|
189
|
+
cancelTimeoutTimer()
|
|
190
|
+
return super.removeFromMap(map, reason: reason)
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// MARK: GestureManagerDelegate
|
|
194
|
+
public func gestureManager(_ gestureManager: MapboxMaps.GestureManager, didBegin gestureType: MapboxMaps.GestureType) {
|
|
195
|
+
isGestureActive = true
|
|
196
|
+
lastGestureType = normalizeGestureType(gestureType)
|
|
197
|
+
lastTransitionEndedAtMs = nil
|
|
198
|
+
markActivity(gestureType: lastGestureType)
|
|
199
|
+
debugLog("gesture didBegin type=\(lastGestureType ?? "")")
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
public func gestureManager(_ gestureManager: MapboxMaps.GestureManager, didEnd gestureType: MapboxMaps.GestureType, willAnimate: Bool) {
|
|
203
|
+
lastGestureType = normalizeGestureType(gestureType)
|
|
204
|
+
if !willAnimate {
|
|
205
|
+
isGestureActive = false
|
|
206
|
+
lastTransitionEndedAtMs = nowMs()
|
|
207
|
+
}
|
|
208
|
+
markActivity(gestureType: lastGestureType)
|
|
209
|
+
debugLog("gesture didEnd type=\(lastGestureType ?? "") willAnimate=\(willAnimate) -> isGestureActive=\(isGestureActive)")
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
public func gestureManager(_ gestureManager: MapboxMaps.GestureManager, didEndAnimatingFor gestureType: MapboxMaps.GestureType) {
|
|
213
|
+
isGestureActive = false
|
|
214
|
+
lastTransitionEndedAtMs = nowMs()
|
|
215
|
+
scheduleQuietCheck()
|
|
216
|
+
debugLog("gesture didEndAnimatingFor type=\(gestureType)")
|
|
217
|
+
}
|
|
218
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
5
|
+
#import <React/RCTUIManager.h>
|
|
6
|
+
#import <React/RCTViewComponentView.h>
|
|
7
|
+
|
|
8
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
9
|
+
|
|
10
|
+
@interface RNMBXCameraGestureObserverComponentView : RCTViewComponentView
|
|
11
|
+
@end
|
|
12
|
+
|
|
13
|
+
NS_ASSUME_NONNULL_END
|
|
14
|
+
|
|
15
|
+
#endif // RCT_NEW_ARCH_ENABLED
|