react-native-maps 1.21.0-alpha.13 → 1.21.0-alpha.130

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 (243) hide show
  1. package/android/build.gradle +73 -53
  2. package/android/gradlew +1 -2
  3. package/android/src/main/RCTAppDependencyProvider.h +25 -0
  4. package/android/src/main/RCTAppDependencyProvider.mm +55 -0
  5. package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
  6. package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
  7. package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
  8. package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
  9. package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
  10. package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  11. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  12. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  13. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  14. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  15. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  16. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  17. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +206 -0
  18. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +73 -0
  19. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  20. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  21. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +46 -0
  22. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +23 -0
  23. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  24. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  25. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  26. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  27. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  28. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +619 -0
  29. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  30. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
  31. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
  32. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  33. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  34. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  35. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  36. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  37. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  38. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  39. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  40. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  41. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  42. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  43. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  44. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  45. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  46. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  47. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  48. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  60. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +40 -4
  61. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  62. package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
  63. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  64. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +637 -556
  65. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
  66. package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
  67. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
  68. package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
  69. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
  70. package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
  71. package/android/src/main/java/com/rnmaps/maps/MapView.java +1650 -1337
  72. package/android/src/main/jni/CMakeLists.txt +36 -0
  73. package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
  74. package/android/src/main/jni/RNMapsSpecs.h +31 -0
  75. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  76. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +31 -0
  77. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +977 -0
  78. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +846 -0
  79. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +193 -0
  80. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1223 -0
  81. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  82. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  83. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +24 -0
  84. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +109 -0
  85. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  86. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +113 -0
  87. package/ios/AirGoogleMaps/AIRGoogleMap.h +10 -11
  88. package/ios/AirGoogleMaps/AIRGoogleMap.m +103 -69
  89. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  90. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +10 -9
  91. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +6 -3
  92. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
  93. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +3 -0
  94. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
  95. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
  96. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  97. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  98. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  99. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +1 -1
  100. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +112 -43
  101. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
  102. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  103. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  104. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  105. package/ios/AirMaps/AIRMap.h +8 -9
  106. package/ios/AirMaps/AIRMap.m +222 -239
  107. package/ios/AirMaps/AIRMapManager.m +10 -7
  108. package/ios/AirMaps/AIRMapMarker.h +1 -0
  109. package/ios/AirMaps/AIRMapMarker.m +165 -103
  110. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  111. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +28 -0
  112. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +68 -0
  113. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  114. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +43 -0
  115. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  116. package/ios/AirMaps/RNMapsAirModule.mm +4 -3
  117. package/ios/AirMaps/RNMapsDefines.h +0 -0
  118. package/ios/AirMaps/RNMapsMapView.h +1 -1
  119. package/ios/AirMaps/RNMapsMapView.mm +119 -95
  120. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  121. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  122. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  123. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  124. package/ios/AirMaps.xcodeproj/project.pbxproj +20 -0
  125. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  126. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  127. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  128. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  129. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  130. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  131. package/ios/{AirMaps → generated}/RNMapsAirModuleDelegate.h +2 -2
  132. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  133. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  134. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  135. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  136. package/ios/generated/RNMapsSpecs/Props.cpp +193 -0
  137. package/ios/generated/RNMapsSpecs/Props.h +1223 -0
  138. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  139. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  140. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  141. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  142. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  143. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  144. package/ios/generated/RNMapsSpecs/States.h +113 -0
  145. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  146. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  147. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  148. package/package.json +25 -18
  149. package/react-native-google-maps.podspec +26 -0
  150. package/react-native-maps-generated.podspec +31 -0
  151. package/react-native-maps.podspec +53 -15
  152. package/react-native.config.js +16 -0
  153. package/src/AnimatedRegion.ts +169 -0
  154. package/src/Geojson.tsx +541 -0
  155. package/src/MapCallout.tsx +77 -0
  156. package/src/MapCalloutSubview.tsx +64 -0
  157. package/src/MapCircle.tsx +162 -0
  158. package/src/MapHeatmap.tsx +125 -0
  159. package/src/MapLocalTile.tsx +60 -0
  160. package/src/MapMarker.tsx +531 -0
  161. package/src/MapMarkerNativeComponent.ts +51 -0
  162. package/src/MapOverlay.tsx +156 -0
  163. package/src/MapPolygon.tsx +188 -0
  164. package/src/MapPolygon.types.ts +25 -0
  165. package/src/MapPolyline.tsx +215 -0
  166. package/src/MapUrlTile.tsx +169 -0
  167. package/src/MapView.tsx +1223 -0
  168. package/src/MapView.types.ts +212 -0
  169. package/src/MapView.web.ts +2 -0
  170. package/src/MapViewNativeComponent.ts +86 -0
  171. package/src/MapWMSTile.tsx +148 -0
  172. package/src/ProviderConstants.ts +2 -0
  173. package/src/createFabricMap.tsx +253 -0
  174. package/src/decorateMapComponent.ts +219 -0
  175. package/src/fixImageProp.ts +17 -0
  176. package/src/index.ts +52 -0
  177. package/src/sharedTypes.ts +101 -0
  178. package/src/specs/NativeAirMapsModule.ts +36 -0
  179. package/src/specs/NativeComponentCallout.ts +63 -0
  180. package/src/specs/NativeComponentCircle.ts +93 -0
  181. package/src/specs/NativeComponentGoogleMapView.ts +913 -0
  182. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  183. package/src/specs/NativeComponentMapView.ts +1091 -0
  184. package/src/specs/NativeComponentMarker.ts +326 -0
  185. package/src/specs/NativeComponentOverlay.ts +89 -0
  186. package/src/specs/NativeComponentPolyline.ts +124 -0
  187. package/lib/AnimatedRegion.d.ts +0 -19
  188. package/lib/AnimatedRegion.js +0 -134
  189. package/lib/Geojson.d.ts +0 -204
  190. package/lib/Geojson.js +0 -166
  191. package/lib/MapCallout.d.ts +0 -40
  192. package/lib/MapCallout.js +0 -51
  193. package/lib/MapCalloutSubview.d.ts +0 -34
  194. package/lib/MapCalloutSubview.js +0 -48
  195. package/lib/MapCircle.d.ts +0 -117
  196. package/lib/MapCircle.js +0 -53
  197. package/lib/MapHeatmap.d.ts +0 -78
  198. package/lib/MapHeatmap.js +0 -59
  199. package/lib/MapLocalTile.d.ts +0 -35
  200. package/lib/MapLocalTile.js +0 -44
  201. package/lib/MapMarker.d.ts +0 -309
  202. package/lib/MapMarker.js +0 -116
  203. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  204. package/lib/MapMarkerNativeComponent.js +0 -17
  205. package/lib/MapOverlay.d.ts +0 -87
  206. package/lib/MapOverlay.js +0 -63
  207. package/lib/MapPolygon.d.ts +0 -140
  208. package/lib/MapPolygon.js +0 -53
  209. package/lib/MapPolygon.types.d.ts +0 -18
  210. package/lib/MapPolygon.types.js +0 -2
  211. package/lib/MapPolyline.d.ts +0 -156
  212. package/lib/MapPolyline.js +0 -53
  213. package/lib/MapUrlTile.d.ts +0 -134
  214. package/lib/MapUrlTile.js +0 -44
  215. package/lib/MapView.d.ts +0 -715
  216. package/lib/MapView.js +0 -447
  217. package/lib/MapView.types.d.ts +0 -161
  218. package/lib/MapView.types.js +0 -2
  219. package/lib/MapView.web.d.ts +0 -1
  220. package/lib/MapView.web.js +0 -9
  221. package/lib/MapViewNativeComponent.d.ts +0 -18
  222. package/lib/MapViewNativeComponent.js +0 -19
  223. package/lib/MapWMSTile.d.ts +0 -116
  224. package/lib/MapWMSTile.js +0 -44
  225. package/lib/ProviderConstants.d.ts +0 -2
  226. package/lib/ProviderConstants.js +0 -5
  227. package/lib/createFabricMap.d.ts +0 -23
  228. package/lib/createFabricMap.js +0 -175
  229. package/lib/decorateMapComponent.d.ts +0 -36
  230. package/lib/decorateMapComponent.js +0 -80
  231. package/lib/index.d.ts +0 -38
  232. package/lib/index.js +0 -81
  233. package/lib/sharedTypes.d.ts +0 -81
  234. package/lib/sharedTypes.js +0 -2
  235. package/lib/sharedTypesInternal.js +0 -2
  236. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  237. package/lib/specs/NativeAirMapsModule.js +0 -4
  238. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  239. package/lib/specs/NativeComponentGoogleMapView.js +0 -21
  240. package/lib/specs/NativeComponentMapView.d.ts +0 -855
  241. package/lib/specs/NativeComponentMapView.js +0 -21
  242. /package/ios/{AirMaps → generated}/RNMapsHostVewDelegate.h +0 -0
  243. /package/{lib/sharedTypesInternal.d.ts → src/sharedTypesInternal.ts} +0 -0
@@ -0,0 +1,43 @@
1
+ //
2
+ // RNMapsGoogleMapView.mm
3
+ //
4
+ //
5
+ // Created by Salah Ghanim on 23.11.24.
6
+ // Copyright © 2024 react-native-maps. All rights reserved.
7
+ //
8
+ #include "RNMapsDefines.h"
9
+
10
+ #if HAVE_GOOGLE_MAPS == 0
11
+
12
+ #import <react-native-maps-generated/ComponentDescriptors.h>
13
+ #import <react-native-maps-generated/EventEmitters.h>
14
+ #import <react-native-maps-generated/Props.h>
15
+ #import <react-native-maps-generated/RCTComponentViewHelpers.h>
16
+
17
+ #import "RCTFabricComponentsPlugins.h"
18
+ #import <React/RCTConversions.h>
19
+ #import "PlaceHolderPolygonView.h"
20
+
21
+ using namespace facebook::react;
22
+
23
+
24
+ @interface RNMapsGooglePolygonView () <RCTRNMapsGooglePolygonViewProtocol>
25
+ @end
26
+
27
+ @implementation RNMapsGooglePolygonView
28
+
29
+
30
+
31
+ + (ComponentDescriptorProvider)componentDescriptorProvider
32
+ {
33
+ return concreteComponentDescriptorProvider<RNMapsGooglePolygonComponentDescriptor>();
34
+ }
35
+
36
+ @end
37
+
38
+ Class<RCTComponentViewProtocol> RNMapsGooglePolygonCls(void)
39
+ {
40
+ return RNMapsGooglePolygonView.class;
41
+ }
42
+
43
+ #endif
@@ -3,7 +3,7 @@
3
3
  #ifdef RCT_NEW_ARCH_ENABLED
4
4
 
5
5
  #import <Foundation/Foundation.h>
6
- #import <RNMapsSpecs/RNMapsSpecs.h>
6
+ #import <react-native-maps-generated/RNMapsSpecs.h>
7
7
 
8
8
  NS_ASSUME_NONNULL_BEGIN
9
9
 
@@ -37,7 +37,7 @@
37
37
  resolve:(RCTPromiseResolveBlock)resolve
38
38
  reject:(RCTPromiseRejectBlock)reject {
39
39
  [self executeWithMapView:tag success:^(id<RNMapsAirModuleDelegate> mapView) {
40
- resolve([mapView getCamera]);
40
+ resolve([mapView getCameraDic]);
41
41
  } reject:reject];
42
42
 
43
43
  }
@@ -60,12 +60,13 @@
60
60
  } reject:reject];
61
61
  }
62
62
  - (void)takeSnapshot:(double)tag
63
- config:(NSDictionary *)config
63
+ config:(NSString *)configStr
64
64
  resolve:(RCTPromiseResolveBlock)resolve
65
65
  reject:(RCTPromiseRejectBlock)reject
66
66
  {
67
+ NSDictionary* config = [RCTConvert dictonaryFromString:configStr];
67
68
  [self executeWithMapView:tag success:^(id<RNMapsAirModuleDelegate> mapView) {
68
- [mapView takeSnapshotWithConfig:config callback:resolve];
69
+ [mapView takeSnapshotWithConfig:config success:resolve error:reject];
69
70
  } reject:reject];
70
71
  }
71
72
 
File without changes
@@ -9,7 +9,7 @@
9
9
 
10
10
  #import <React/RCTViewComponentView.h>
11
11
  #import <UIKit/UIKit.h>
12
- #import "RNMapsHostVewDelegate.h"
12
+ #import <react-native-maps-generated/RNMapsHostVewDelegate.h>
13
13
 
14
14
  @class AIRMap;
15
15
 
@@ -7,13 +7,14 @@
7
7
  //
8
8
 
9
9
  #import "RNMapsMapView.h"
10
- #import "AirMap.h"
10
+ #import "AIRMap.h"
11
11
  #import "AIRMapMarker.h"
12
12
  #import "AIRMapManager.h"
13
- #import <react/renderer/components/RNMapsSpecs/ComponentDescriptors.h>
14
- #import <react/renderer/components/RNMapsSpecs/EventEmitters.h>
15
- #import <react/renderer/components/RNMapsSpecs/Props.h>
16
- #import <react/renderer/components/RNMapsSpecs/RCTComponentViewHelpers.h>
13
+ #import "RNMapsMarkerView.h"
14
+ #import <react-native-maps-generated/EventEmitters.h>
15
+ #import <react-native-maps-generated/ComponentDescriptors.h>
16
+ #import <react-native-maps-generated/Props.h>
17
+ #import <react-native-maps-generated/RCTComponentViewHelpers.h>
17
18
  #import "RCTFabricComponentsPlugins.h"
18
19
  #import <React/RCTConversions.h>
19
20
  #import "UIView+AirMap.h"
@@ -46,8 +47,9 @@ using namespace facebook::react;
46
47
  - (void)animateToRegion:(NSString *)regionJSON duration:(NSInteger)duration{
47
48
  NSDictionary* regionDic = [RCTConvert dictonaryFromString:regionJSON];
48
49
  MKCoordinateRegion region = [RCTConvert MKCoordinateRegion:regionDic];
49
- _view.ignoreRegionChanges = YES;
50
- [_view setRegion:region animated:YES];
50
+ Boolean animated = duration == 0 ? NO :YES;
51
+ _view.ignoreRegionChanges = animated;
52
+ [_view setRegion:region animated:animated];
51
53
  }
52
54
  - (void)setCamera:(NSString *)cameraJSON{
53
55
  NSDictionary* cameraDic = [RCTConvert dictonaryFromString:cameraJSON];
@@ -82,12 +84,17 @@ using namespace facebook::react;
82
84
  for (id json : coordinatesArr){
83
85
  [mutableArray addObject:[RCTConvert AIRMapCoordinate:json]];
84
86
  }
85
-
87
+
86
88
  NSDictionary* edgePadding = [RCTConvert dictonaryFromString:edgePaddingJSON];
87
-
89
+
88
90
  UIEdgeInsets edgeInsets = [RCTConvert UIEdgeInsets:edgePadding];
89
91
  [_view fitToCoordinates:mutableArray edgePadding:edgeInsets animated:animated];
90
-
92
+
93
+ }
94
+
95
+ - (void) setIndoorActiveLevelIndex:(NSInteger) activeLevelIndex
96
+ {
97
+ // do nothing (google only)
91
98
  }
92
99
 
93
100
  #pragma mark - Native commands
@@ -110,27 +117,27 @@ using namespace facebook::react;
110
117
  _props = defaultProps;
111
118
  _legacyMapManager = [[AIRMapManager alloc] init];
112
119
  _view = (AIRMap *)[_legacyMapManager view];
113
-
120
+
114
121
  self.contentView = _view;
115
-
122
+
116
123
  _view.onPress = [self](NSDictionary* dictionary) {
117
124
  if (_eventEmitter) {
118
125
  // Extract values from the NSDictionary
119
126
  NSDictionary* coordinateDict = dictionary[@"coordinate"];
120
127
  NSDictionary* positionDict = dictionary[@"position"];
121
-
128
+
122
129
  // Populate the OnMapPressCoordinate struct
123
130
  facebook::react::RNMapsMapViewEventEmitter::OnPressCoordinate coordinate = {
124
131
  .latitude = [coordinateDict[@"latitude"] doubleValue],
125
132
  .longitude = [coordinateDict[@"longitude"] doubleValue],
126
133
  };
127
-
134
+
128
135
  // Populate the OnMapPressPosition struct
129
136
  facebook::react::RNMapsMapViewEventEmitter::OnPressPosition position = {
130
137
  .x = [positionDict[@"x"] doubleValue],
131
138
  .y = [positionDict[@"y"] doubleValue],
132
139
  };
133
-
140
+
134
141
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
135
142
  facebook::react::RNMapsMapViewEventEmitter::OnPress data = {
136
143
  .action = std::string([@"press" UTF8String]),
@@ -140,19 +147,18 @@ using namespace facebook::react;
140
147
  mapViewEventEmitter->onPress(data);
141
148
  }
142
149
  };
143
-
144
-
150
+
151
+
145
152
  _view.onMapReady = [self](NSDictionary* dictionary) {
146
153
  if (_eventEmitter) {
147
-
154
+
148
155
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
149
156
  facebook::react::RNMapsMapViewEventEmitter::OnMapReady data = {};
150
157
  mapViewEventEmitter->onMapReady(data);
151
158
  }
152
159
  };
153
- _view.onChange = [self](NSDictionary* dictionary) {
160
+ _view.onRegionChange = [self](NSDictionary* dictionary) {
154
161
  if (_eventEmitter) {
155
-
156
162
  NSDictionary* regionDict = dictionary[@"region"];
157
163
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
158
164
  facebook::react::RNMapsMapViewEventEmitter::OnRegionChange data = {
@@ -167,23 +173,23 @@ using namespace facebook::react;
167
173
  };
168
174
  _view.onDoublePress = [self](NSDictionary* dictionary) {
169
175
  if (_eventEmitter) {
170
-
176
+
171
177
  NSDictionary* coordinateDict = dictionary[@"coordinate"];
172
178
  NSDictionary* positionDict = dictionary[@"position"];
173
-
179
+
174
180
  // Populate the OnMapPressCoordinate struct
175
181
  facebook::react::RNMapsMapViewEventEmitter::OnDoublePressCoordinate coordinate = {
176
182
  .latitude = [coordinateDict[@"latitude"] doubleValue],
177
183
  .longitude = [coordinateDict[@"longitude"] doubleValue],
178
184
  };
179
-
185
+
180
186
  // Populate the OnMapDouplePressPosition struct
181
187
  facebook::react::RNMapsMapViewEventEmitter::OnDoublePressPosition position = {
182
188
  .x = [positionDict[@"x"] doubleValue],
183
189
  .y = [positionDict[@"y"] doubleValue],
184
190
  };
185
-
186
-
191
+
192
+
187
193
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
188
194
  facebook::react::RNMapsMapViewEventEmitter::OnDoublePress data = {
189
195
  .position = position,
@@ -192,25 +198,25 @@ using namespace facebook::react;
192
198
  mapViewEventEmitter->onDoublePress(data);
193
199
  }
194
200
  };
195
-
201
+
196
202
  _view.onPanDrag = [self](NSDictionary* dictionary) {
197
203
  if (_eventEmitter) {
198
-
204
+
199
205
  NSDictionary* coordinateDict = dictionary[@"coordinate"];
200
206
  NSDictionary* positionDict = dictionary[@"position"];
201
-
207
+
202
208
  // Populate the OnMapPressCoordinate struct
203
209
  facebook::react::RNMapsMapViewEventEmitter::OnPanDragCoordinate coordinate = {
204
210
  .latitude = [coordinateDict[@"latitude"] doubleValue],
205
211
  .longitude = [coordinateDict[@"longitude"] doubleValue],
206
212
  };
207
-
213
+
208
214
  // Populate the OnMapDouplePressPosition struct
209
215
  facebook::react::RNMapsMapViewEventEmitter::OnPanDragPosition position = {
210
216
  .x = [positionDict[@"x"] doubleValue],
211
217
  .y = [positionDict[@"y"] doubleValue],
212
218
  };
213
-
219
+
214
220
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
215
221
  facebook::react::RNMapsMapViewEventEmitter::OnPanDrag data = {
216
222
  .position = position,
@@ -219,14 +225,14 @@ using namespace facebook::react;
219
225
  mapViewEventEmitter->onPanDrag(data);
220
226
  }
221
227
  };
222
-
228
+
223
229
  _view.onUserLocationChange = [self](NSDictionary* dictionary) {
224
230
  if (_eventEmitter) {
225
-
231
+
226
232
  NSDictionary* coordinateDict = dictionary[@"coordinate"];
227
233
  NSDictionary* errorDict = dictionary[@"error"];
228
-
229
-
234
+
235
+
230
236
  // Populate the OnMapPressCoordinate struct
231
237
  facebook::react::RNMapsMapViewEventEmitter::OnUserLocationChangeCoordinate coordinate = {
232
238
  .latitude = [coordinateDict[@"latitude"] doubleValue],
@@ -236,12 +242,12 @@ using namespace facebook::react;
236
242
  if (errorDict){
237
243
  str = errorDict[@"message"];
238
244
  }
239
-
245
+
240
246
  facebook::react::RNMapsMapViewEventEmitter::OnUserLocationChangeError error = {
241
247
  .message = std::string([str UTF8String]),
242
248
  };
243
-
244
-
249
+
250
+
245
251
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
246
252
  facebook::react::RNMapsMapViewEventEmitter::OnUserLocationChange data = {
247
253
  .coordinate = coordinate,
@@ -250,27 +256,27 @@ using namespace facebook::react;
250
256
  mapViewEventEmitter->onUserLocationChange(data);
251
257
  }
252
258
  };
253
-
259
+
254
260
  _view.onCalloutPress = [self](NSDictionary* dictionary) {
255
261
  if (_eventEmitter) {
256
-
262
+
257
263
  NSDictionary* coordinateDict = dictionary[@"coordinate"];
258
264
  NSDictionary* positionDict = dictionary[@"position"];
259
-
265
+
260
266
  // Populate the OnCalloutPressPoint struct
261
267
  facebook::react::RNMapsMapViewEventEmitter::OnCalloutPressPoint point = {
262
268
  .x = [coordinateDict[@"x"] doubleValue],
263
269
  .y = [coordinateDict[@"y"] doubleValue],
264
270
  };
265
-
266
-
271
+
272
+
267
273
  facebook::react::RNMapsMapViewEventEmitter::OnCalloutPressFrame frame = {
268
274
  .x = [positionDict[@"x"] doubleValue],
269
275
  .y = [positionDict[@"y"] doubleValue],
270
276
  .width = [positionDict[@"width"] doubleValue],
271
277
  .height = [positionDict[@"height"] doubleValue],
272
278
  };
273
-
279
+
274
280
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
275
281
  facebook::react::RNMapsMapViewEventEmitter::OnCalloutPress data = {
276
282
  .action = std::string([dictionary[@"action"] UTF8String]),
@@ -281,11 +287,11 @@ using namespace facebook::react;
281
287
  mapViewEventEmitter->onCalloutPress(data);
282
288
  }
283
289
  };
284
-
285
-
290
+
291
+
286
292
  _view.onRegionChangeStart = [self](NSDictionary* dictionary) {
287
293
  if (_eventEmitter) {
288
-
294
+
289
295
  NSDictionary* regionDict = dictionary[@"region"];
290
296
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
291
297
  facebook::react::RNMapsMapViewEventEmitter::OnRegionChangeStart data = {
@@ -298,8 +304,8 @@ using namespace facebook::react;
298
304
  mapViewEventEmitter->onRegionChangeStart(data);
299
305
  }
300
306
  };
301
-
302
-
307
+
308
+
303
309
  #define HANDLE_MARKER_DRAG_EVENT(eventName, emitterFunction) \
304
310
  if (_eventEmitter) { \
305
311
  NSDictionary* coordinateDict = dictionary[@"coordinate"]; \
@@ -312,9 +318,9 @@ facebook::react::RNMapsMapViewEventEmitter::eventName data = { \
312
318
  }; \
313
319
  mapViewEventEmitter->emitterFunction(data); \
314
320
  }
315
-
316
-
317
-
321
+
322
+
323
+
318
324
  #define HANDLE_MARKER_EVENT(eventName, emitterFunction, actionName) \
319
325
  if (_eventEmitter) { \
320
326
  NSDictionary* coordinateDict = dictionary[@"coordinate"]; \
@@ -332,27 +338,27 @@ facebook::react::RNMapsMapViewEventEmitter::eventName data = { \
332
338
  }; \
333
339
  mapViewEventEmitter->emitterFunction(data); \
334
340
  }
335
-
341
+
336
342
  _view.onMarkerDrag = [self](NSDictionary* dictionary) {
337
343
  HANDLE_MARKER_DRAG_EVENT(OnMarkerDrag, onMarkerDrag);
338
344
  };
339
-
345
+
340
346
  _view.onMarkerDragStart = [self](NSDictionary* dictionary) {
341
347
  HANDLE_MARKER_DRAG_EVENT(OnMarkerDragStart, onMarkerDragStart);
342
348
  };
343
-
349
+
344
350
  _view.onMarkerDragEnd = [self](NSDictionary* dictionary) {
345
351
  HANDLE_MARKER_DRAG_EVENT(OnMarkerDragEnd, onMarkerDragEnd);
346
352
  };
347
-
353
+
348
354
  _view.onMarkerSelect = [self](NSDictionary* dictionary) {
349
355
  HANDLE_MARKER_EVENT(OnMarkerSelect, onMarkerSelect, "marker-select");
350
356
  };
351
-
357
+
352
358
  _view.onMarkerDeselect = [self](NSDictionary* dictionary) {
353
359
  HANDLE_MARKER_EVENT(OnMarkerDeselect, onMarkerDeselect, "marker-deselect");
354
360
  };
355
-
361
+
356
362
  _view.onMarkerPress = [self](NSDictionary* dictionary) {
357
363
  HANDLE_MARKER_EVENT(OnMarkerPress, onMarkerPress, "marker-press");
358
364
  };
@@ -362,7 +368,7 @@ mapViewEventEmitter->emitterFunction(data); \
362
368
  if (self = [super initWithFrame:frame]) {
363
369
  [self prepareMapView];
364
370
  }
365
-
371
+
366
372
  return self;
367
373
  }
368
374
 
@@ -371,16 +377,25 @@ mapViewEventEmitter->emitterFunction(data); \
371
377
  id<RCTComponent> paperView = [childComponentView getPaperViewFromChildComponentView];
372
378
  if (paperView){
373
379
  [_view insertReactSubview:paperView atIndex:index];
374
- } else {
380
+ } else if ([childComponentView isKindOfClass:[RNMapsMarkerView class]]){
381
+ RNMapsMarkerView* fabricMarker = (RNMapsMarkerView *) childComponentView;
382
+ [_view insertReactSubview:[fabricMarker marker] atIndex:index];
383
+ }
384
+ else {
375
385
  [_view insertReactSubview:childComponentView atIndex:index];
376
386
  }
377
387
  }
388
+
378
389
  - (void) unmountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
379
390
  {
380
391
  id<RCTComponent> paperView = [childComponentView getPaperViewFromChildComponentView];
381
392
  if (paperView){
382
393
  [_view removeReactSubview:paperView];
383
- } else {
394
+ }
395
+ else if ([childComponentView isKindOfClass:[RNMapsMarkerView class]]){
396
+ RNMapsMarkerView* fabricMarker = (RNMapsMarkerView *) childComponentView;
397
+ [_view removeReactSubview:[fabricMarker marker]];
398
+ } else {
384
399
  [_view removeReactSubview:childComponentView];
385
400
  }
386
401
  }
@@ -403,41 +418,47 @@ MKMapType mapRNTypeToMKMapType(RNMapsMapViewMapType rnMapType) {
403
418
  [self prepareMapView];
404
419
  const auto &oldViewProps = *std::static_pointer_cast<RNMapsMapViewProps const>(_props);
405
420
  const auto &newViewProps = *std::static_pointer_cast<RNMapsMapViewProps const>(props);
406
-
421
+
407
422
  #define REMAP_MAPVIEW_PROP(name) \
408
423
  if (oldViewProps.name != newViewProps.name) { \
409
424
  _view.name = newViewProps.name; \
410
425
  }
411
-
426
+
412
427
  #define REMAP_MAPVIEW_STRING_PROP(name) \
413
428
  if (oldViewProps.name != newViewProps.name) { \
414
429
  _view.name = RCTNSStringFromString(newViewProps.name); \
415
430
  }
416
-
431
+
417
432
  #define REMAP_MAPVIEW_COLOR_PROP(name) \
418
433
  if (oldViewProps.name != newViewProps.name) { \
419
434
  _view.name = RCTUIColorFromSharedColor(newViewProps.name); \
420
435
  }
421
-
436
+
422
437
  #define REMAP_MAPVIEW_POINT_PROP(name) \
423
438
  if (newViewProps.name.x != oldViewProps.name.x || \
424
439
  newViewProps.name.y != oldViewProps.name.y) { \
425
440
  _view.name = CGPointMake(newViewProps.name.x, newViewProps.name.y); \
426
441
  }
427
-
442
+
428
443
  #define REMAP_MAPVIEW_REGION_PROP(name) \
429
- if (newViewProps.name.latitude != oldViewProps.name.latitude || \
430
- newViewProps.name.longitude != oldViewProps.name.longitude || \
431
- newViewProps.name.latitudeDelta != oldViewProps.name.latitudeDelta ||\
432
- newViewProps.name.longitudeDelta != oldViewProps.name.longitudeDelta) { \
433
- MKCoordinateSpan span = MKCoordinateSpanMake(newViewProps.name.latitudeDelta, \
434
- newViewProps.name.longitudeDelta); \
435
- MKCoordinateRegion region = MKCoordinateRegionMake(CLLocationCoordinate2DMake( \
436
- newViewProps.name.latitude, newViewProps.name.longitude), span); \
437
- _view.name = region; \
438
- [_view didSetRegion]; \
444
+ if (!(newViewProps.name.latitude == 0 && \
445
+ newViewProps.name.longitude == 0 && \
446
+ newViewProps.name.latitudeDelta == 0 && \
447
+ newViewProps.name.longitudeDelta == 0)) { \
448
+ if (newViewProps.name.latitude != oldViewProps.name.latitude || \
449
+ newViewProps.name.longitude != oldViewProps.name.longitude || \
450
+ newViewProps.name.latitudeDelta != oldViewProps.name.latitudeDelta ||\
451
+ newViewProps.name.longitudeDelta != oldViewProps.name.longitudeDelta) { \
452
+ MKCoordinateSpan span = MKCoordinateSpanMake(newViewProps.name.latitudeDelta, \
453
+ newViewProps.name.longitudeDelta); \
454
+ MKCoordinateRegion region = MKCoordinateRegionMake(CLLocationCoordinate2DMake( \
455
+ newViewProps.name.latitude, \
456
+ newViewProps.name.longitude), span); \
457
+ _view.name = region; \
458
+ } \
439
459
  }
440
-
460
+
461
+
441
462
  #define REMAP_MAPVIEW_CAMERA_PROP(name) \
442
463
  if (newViewProps.name.center.latitude != oldViewProps.name.center.latitude || \
443
464
  newViewProps.name.center.longitude != oldViewProps.name.center.longitude || \
@@ -450,9 +471,10 @@ MKMapCamera* camera = [[MKMapCamera alloc] init]; \
450
471
  camera.centerCoordinate = center; \
451
472
  camera.heading = newViewProps.name.heading; \
452
473
  camera.pitch = newViewProps.name.pitch; \
474
+ camera.centerCoordinateDistance = newViewProps.name.altitude; \
453
475
  _view.name = camera; \
454
476
  }
455
-
477
+
456
478
  #define REMAP_MAPVIEW_EDGEINSETS_PROP(name) \
457
479
  if (newViewProps.name.top != oldViewProps.name.top || \
458
480
  newViewProps.name.right != oldViewProps.name.right || \
@@ -463,49 +485,51 @@ newViewProps.name.left, \
463
485
  newViewProps.name.bottom, \
464
486
  newViewProps.name.right); \
465
487
  }
466
-
488
+
467
489
  #define REMAP_MAPVIEW_MAPTYPE(rnMapType) MKMapType##rnMapType
468
-
469
-
490
+
491
+
470
492
  REMAP_MAPVIEW_PROP(cacheEnabled)
471
-
493
+
472
494
  REMAP_MAPVIEW_PROP(followsUserLocation)
473
495
  REMAP_MAPVIEW_PROP(loadingEnabled)
496
+
474
497
  REMAP_MAPVIEW_PROP(scrollEnabled)
475
-
498
+ REMAP_MAPVIEW_PROP(handlePanDrag)
499
+
476
500
  REMAP_MAPVIEW_PROP(maxDelta)
477
501
  REMAP_MAPVIEW_PROP(maxZoom)
478
502
  REMAP_MAPVIEW_PROP(minDelta)
479
503
  REMAP_MAPVIEW_PROP(minZoom)
480
-
504
+
481
505
  REMAP_MAPVIEW_PROP(showsCompass)
482
506
  REMAP_MAPVIEW_PROP(showsScale)
483
- REMAP_MAPVIEW_PROP(showsTraffic)
484
507
  REMAP_MAPVIEW_PROP(showsUserLocation)
485
508
  REMAP_MAPVIEW_PROP(userLocationCalloutEnabled)
486
509
  REMAP_MAPVIEW_PROP(zoomEnabled)
487
-
510
+
511
+
488
512
  REMAP_MAPVIEW_POINT_PROP(compassOffset)
489
-
513
+
490
514
  if (![_view ignoreRegionChanges]){
491
515
  _view.ignoreRegionChanges = YES;
492
516
  REMAP_MAPVIEW_REGION_PROP(initialRegion)
493
517
  REMAP_MAPVIEW_REGION_PROP(region)
494
518
  _view.ignoreRegionChanges = NO;
495
519
  }
496
-
520
+
497
521
  REMAP_MAPVIEW_CAMERA_PROP(initialCamera)
498
522
  REMAP_MAPVIEW_CAMERA_PROP(camera)
499
-
523
+
500
524
  REMAP_MAPVIEW_EDGEINSETS_PROP(legalLabelInsets)
501
525
  REMAP_MAPVIEW_EDGEINSETS_PROP(mapPadding)
502
-
526
+
503
527
  REMAP_MAPVIEW_COLOR_PROP(loadingIndicatorColor)
504
528
  REMAP_MAPVIEW_COLOR_PROP(loadingIndicatorColor)
505
529
  REMAP_MAPVIEW_COLOR_PROP(tintColor)
506
-
530
+
507
531
  REMAP_MAPVIEW_STRING_PROP(userLocationAnnotationTitle)
508
-
532
+
509
533
  if (oldViewProps.mapType != newViewProps.mapType){
510
534
  _view.mapType = mapRNTypeToMKMapType(newViewProps.mapType);
511
535
  }
@@ -522,16 +546,16 @@ newViewProps.name.right); \
522
546
  break;
523
547
  }
524
548
  }
525
-
549
+
526
550
  if (oldViewProps.cameraZoomRange.minCenterCoordinateDistance != newViewProps.cameraZoomRange.minCenterCoordinateDistance ||
527
551
  oldViewProps.cameraZoomRange.maxCenterCoordinateDistance != newViewProps.cameraZoomRange.maxCenterCoordinateDistance ||
528
552
  oldViewProps.cameraZoomRange.animated != newViewProps.cameraZoomRange.animated) {
529
-
553
+
530
554
  MKMapCameraZoomRange* zoomRange = [[MKMapCameraZoomRange alloc] initWithMinCenterCoordinateDistance:newViewProps.cameraZoomRange.minCenterCoordinateDistance maxCenterCoordinateDistance:newViewProps.cameraZoomRange.maxCenterCoordinateDistance];
531
555
  [_view setCameraZoomRange:zoomRange animated:newViewProps.cameraZoomRange.animated];
532
556
  }
533
-
534
-
557
+
558
+
535
559
  [super updateProps:props oldProps:oldProps];
536
560
  }
537
561
 
@@ -17,7 +17,25 @@
17
17
 
18
18
  RCT_EXPORT_MODULE(RNMapsMapViewManager)
19
19
 
20
-
20
+ RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTDirectEventBlock)
21
+ RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
22
+ RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
23
+ RCT_EXPORT_VIEW_PROPERTY(onCalloutPress, RCTDirectEventBlock)
24
+ RCT_EXPORT_VIEW_PROPERTY(onDoublePress, RCTDirectEventBlock)
25
+
26
+ RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTDirectEventBlock)
27
+
28
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerPress, RCTDirectEventBlock)
29
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerSelect, RCTDirectEventBlock)
30
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerDeselect, RCTDirectEventBlock)
31
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerDragStart, RCTDirectEventBlock)
32
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerDrag, RCTDirectEventBlock)
33
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerDragEnd, RCTDirectEventBlock)
34
+
35
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChangeStart, RCTDirectEventBlock)
36
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChangeComplete, RCTDirectEventBlock)
37
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChange, RCTDirectEventBlock)
38
+ RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTDirectEventBlock)
21
39
 
22
40
 
23
41
 
@@ -0,0 +1,24 @@
1
+ //
2
+ // RNMapsMarker.h
3
+ // AirMaps
4
+ //
5
+ // Created by Salah Ghanim on 23.11.24.
6
+ // Copyright © 2024 react-native-maps. All rights reserved.
7
+ //
8
+ #ifdef RCT_NEW_ARCH_ENABLED
9
+
10
+ #import <React/RCTViewComponentView.h>
11
+ #import <UIKit/UIKit.h>
12
+
13
+ NS_ASSUME_NONNULL_BEGIN
14
+
15
+ typedef void (^LoadCompletionHandler)(UIView *view);
16
+
17
+ @class AIRMapMarker;
18
+ @interface RNMapsMarkerView : RCTViewComponentView
19
+ - (AIRMapMarker*) marker;
20
+ @end
21
+
22
+ NS_ASSUME_NONNULL_END
23
+
24
+ #endif