@rnmapbox/maps 10.1.0-beta.13 → 10.1.0-beta.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 (175) hide show
  1. package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +19 -8
  2. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt +1 -1
  3. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXAndroidTextureMapViewManager.kt +1 -1
  4. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +15 -15
  5. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt +1 -1
  6. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXImageSource.kt +1 -1
  7. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSource.kt +21 -23
  8. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceManager.kt +0 -46
  9. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt +61 -0
  10. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/{RCTSource.kt → RNMBXSource.kt} +8 -8
  11. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSource.kt +1 -1
  12. package/android/src/main/java/com/rnmapbox/rnmbx/events/FeatureClickEvent.java +4 -4
  13. package/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt +6 -5
  14. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageSourceManagerDelegate.java +41 -0
  15. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageSourceManagerInterface.java +20 -0
  16. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterDemSourceManagerDelegate.java +50 -0
  17. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterDemSourceManagerInterface.java +23 -0
  18. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterSourceManagerDelegate.java +56 -0
  19. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterSourceManagerInterface.java +25 -0
  20. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerDelegate.java +77 -0
  21. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerInterface.java +32 -0
  22. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXVectorSourceManagerDelegate.java +59 -0
  23. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXVectorSourceManagerInterface.java +26 -0
  24. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXShapeSourceModuleSpec.java +48 -0
  25. package/ios/RNMBX/RNMBXBackgroundLayerComponentView.mm +2 -0
  26. package/ios/RNMBX/RNMBXCircleLayerComponentView.mm +2 -0
  27. package/ios/RNMBX/RNMBXFillExtrusionLayerComponentView.mm +3 -1
  28. package/ios/RNMBX/RNMBXFillLayerComponentView.mm +2 -0
  29. package/ios/RNMBX/RNMBXHeatmapLayerComponentView.mm +2 -0
  30. package/ios/RNMBX/RNMBXImageSource.swift +3 -3
  31. package/ios/RNMBX/RNMBXImageSourceComponentView.h +15 -0
  32. package/ios/RNMBX/RNMBXImageSourceComponentView.mm +100 -0
  33. package/ios/RNMBX/{RNMBXImageSourceManager.m → RNMBXImageSourceViewManager.m} +1 -1
  34. package/ios/RNMBX/{RNMBXImageSourceManager.swift → RNMBXImageSourceViewManager.swift} +2 -2
  35. package/ios/RNMBX/RNMBXInteractiveElement.swift +7 -7
  36. package/ios/RNMBX/RNMBXLayer.swift +1 -1
  37. package/ios/RNMBX/RNMBXLineLayerComponentView.mm +2 -0
  38. package/ios/RNMBX/RNMBXMapFeatureView.h +7 -0
  39. package/ios/RNMBX/RNMBXRasterDemSource.swift +6 -6
  40. package/ios/RNMBX/RNMBXRasterDemSourceComponentView.h +17 -0
  41. package/ios/RNMBX/RNMBXRasterDemSourceComponentView.mm +116 -0
  42. package/ios/RNMBX/{RNMBXRasterDemSourceManager.m → RNMBXRasterDemSourceViewManager.m} +1 -7
  43. package/ios/RNMBX/{RNMBXRasterDemSourceManager.swift → RNMBXRasterDemSourceViewManager.swift} +2 -2
  44. package/ios/RNMBX/RNMBXRasterLayerComponentView.mm +2 -0
  45. package/ios/RNMBX/RNMBXRasterSource.swift +8 -8
  46. package/ios/RNMBX/RNMBXRasterSourceComponentView.h +17 -0
  47. package/ios/RNMBX/RNMBXRasterSourceComponentView.mm +124 -0
  48. package/ios/RNMBX/{RNMBXRasterSourceManager.m → RNMBXRasterSourceViewManager.m} +1 -1
  49. package/ios/RNMBX/{RNMBXRasterSourceManager.swift → RNMBXRasterSourceViewManager.swift} +2 -2
  50. package/ios/RNMBX/RNMBXShapeSource.swift +11 -11
  51. package/ios/RNMBX/RNMBXShapeSourceComponentView.h +17 -0
  52. package/ios/RNMBX/RNMBXShapeSourceComponentView.mm +153 -0
  53. package/ios/RNMBX/RNMBXShapeSourceModule.h +18 -0
  54. package/ios/RNMBX/RNMBXShapeSourceModule.mm +87 -0
  55. package/ios/RNMBX/RNMBXShapeSourceViewManager.m +26 -0
  56. package/ios/RNMBX/{RNMBXShapeSourceManager.swift → RNMBXShapeSourceViewManager.swift} +12 -42
  57. package/ios/RNMBX/RNMBXSkyLayerComponentView.mm +2 -0
  58. package/ios/RNMBX/RNMBXSource.swift +36 -27
  59. package/ios/RNMBX/RNMBXSymbolLayerComponentView.mm +2 -0
  60. package/ios/RNMBX/RNMBXTileSource.swift +2 -2
  61. package/ios/RNMBX/RNMBXVectorSource.swift +6 -6
  62. package/ios/RNMBX/RNMBXVectorSourceComponentView.h +17 -0
  63. package/ios/RNMBX/RNMBXVectorSourceComponentView.mm +141 -0
  64. package/ios/RNMBX/{RNMBXVectorSourceManager.m → RNMBXVectorSourceViewManager.m} +1 -1
  65. package/ios/RNMBX/{RNMBXVectorSourceManager.swift → RNMBXVectorSourceViewManager.swift} +2 -2
  66. package/ios/install.md +1 -0
  67. package/lib/commonjs/components/ImageSource.js +10 -7
  68. package/lib/commonjs/components/ImageSource.js.map +1 -1
  69. package/lib/commonjs/components/RasterDemSource.js +11 -8
  70. package/lib/commonjs/components/RasterDemSource.js.map +1 -1
  71. package/lib/commonjs/components/RasterSource.js +11 -8
  72. package/lib/commonjs/components/RasterSource.js.map +1 -1
  73. package/lib/commonjs/components/ShapeSource.js +31 -52
  74. package/lib/commonjs/components/ShapeSource.js.map +1 -1
  75. package/lib/commonjs/components/VectorSource.js +26 -39
  76. package/lib/commonjs/components/VectorSource.js.map +1 -1
  77. package/lib/commonjs/specs/NativeRNMBXShapeSourceModule.js +10 -0
  78. package/lib/commonjs/specs/NativeRNMBXShapeSourceModule.js.map +1 -0
  79. package/lib/commonjs/specs/RNMBXImageSourceNativeComponent.js +10 -0
  80. package/lib/commonjs/specs/RNMBXImageSourceNativeComponent.js.map +1 -0
  81. package/lib/commonjs/specs/RNMBXRasterDemSourceNativeComponent.js +10 -0
  82. package/lib/commonjs/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -0
  83. package/lib/commonjs/specs/RNMBXRasterSourceNativeComponent.js +10 -0
  84. package/lib/commonjs/specs/RNMBXRasterSourceNativeComponent.js.map +1 -0
  85. package/lib/commonjs/specs/RNMBXShapeSourceNativeComponent.js +10 -0
  86. package/lib/commonjs/specs/RNMBXShapeSourceNativeComponent.js.map +1 -0
  87. package/lib/commonjs/specs/RNMBXVectorSourceNativeComponent.js +10 -0
  88. package/lib/commonjs/specs/RNMBXVectorSourceNativeComponent.js.map +1 -0
  89. package/lib/module/components/ImageSource.js +10 -7
  90. package/lib/module/components/ImageSource.js.map +1 -1
  91. package/lib/module/components/RasterDemSource.js +11 -8
  92. package/lib/module/components/RasterDemSource.js.map +1 -1
  93. package/lib/module/components/RasterSource.js +11 -8
  94. package/lib/module/components/RasterSource.js.map +1 -1
  95. package/lib/module/components/ShapeSource.js +32 -53
  96. package/lib/module/components/ShapeSource.js.map +1 -1
  97. package/lib/module/components/VectorSource.js +28 -41
  98. package/lib/module/components/VectorSource.js.map +1 -1
  99. package/lib/module/specs/NativeRNMBXShapeSourceModule.js +5 -0
  100. package/lib/module/specs/NativeRNMBXShapeSourceModule.js.map +1 -0
  101. package/lib/module/specs/RNMBXImageSourceNativeComponent.js +3 -0
  102. package/lib/module/specs/RNMBXImageSourceNativeComponent.js.map +1 -0
  103. package/lib/module/specs/RNMBXRasterDemSourceNativeComponent.js +3 -0
  104. package/lib/module/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -0
  105. package/lib/module/specs/RNMBXRasterSourceNativeComponent.js +3 -0
  106. package/lib/module/specs/RNMBXRasterSourceNativeComponent.js.map +1 -0
  107. package/lib/module/specs/RNMBXShapeSourceNativeComponent.js +3 -0
  108. package/lib/module/specs/RNMBXShapeSourceNativeComponent.js.map +1 -0
  109. package/lib/module/specs/RNMBXVectorSourceNativeComponent.js +3 -0
  110. package/lib/module/specs/RNMBXVectorSourceNativeComponent.js.map +1 -0
  111. package/lib/typescript/src/components/ImageSource.d.ts.map +1 -1
  112. package/lib/typescript/src/components/RasterDemSource.d.ts +0 -1
  113. package/lib/typescript/src/components/RasterDemSource.d.ts.map +1 -1
  114. package/lib/typescript/src/components/RasterSource.d.ts +0 -1
  115. package/lib/typescript/src/components/RasterSource.d.ts.map +1 -1
  116. package/lib/typescript/src/components/ShapeSource.d.ts +2 -58
  117. package/lib/typescript/src/components/ShapeSource.d.ts.map +1 -1
  118. package/lib/typescript/src/components/VectorSource.d.ts +3 -64
  119. package/lib/typescript/src/components/VectorSource.d.ts.map +1 -1
  120. package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts +11 -0
  121. package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts.map +1 -0
  122. package/lib/typescript/src/specs/RNMBXImageSourceNativeComponent.d.ts +11 -0
  123. package/lib/typescript/src/specs/RNMBXImageSourceNativeComponent.d.ts.map +1 -0
  124. package/lib/typescript/src/specs/RNMBXRasterDemSourceNativeComponent.d.ts +15 -0
  125. package/lib/typescript/src/specs/RNMBXRasterDemSourceNativeComponent.d.ts.map +1 -0
  126. package/lib/typescript/src/specs/RNMBXRasterSourceNativeComponent.d.ts +17 -0
  127. package/lib/typescript/src/specs/RNMBXRasterSourceNativeComponent.d.ts.map +1 -0
  128. package/lib/typescript/src/specs/RNMBXShapeSourceNativeComponent.d.ts +29 -0
  129. package/lib/typescript/src/specs/RNMBXShapeSourceNativeComponent.d.ts.map +1 -0
  130. package/lib/typescript/src/specs/RNMBXVectorSourceNativeComponent.d.ts +23 -0
  131. package/lib/typescript/src/specs/RNMBXVectorSourceNativeComponent.d.ts.map +1 -0
  132. package/package.json +1 -1
  133. package/plugin/build/withMapbox.d.ts +5 -4
  134. package/plugin/build/withMapbox.js +46 -19
  135. package/plugin/install.md +20 -0
  136. package/plugin/src/withMapbox.ts +79 -21
  137. package/setup-jest.js +6 -0
  138. package/src/components/ImageSource.tsx +4 -6
  139. package/src/components/RasterDemSource.tsx +5 -8
  140. package/src/components/RasterSource.tsx +5 -8
  141. package/src/components/ShapeSource.tsx +39 -86
  142. package/src/components/VectorSource.tsx +20 -44
  143. package/src/specs/NativeRNMBXShapeSourceModule.ts +23 -0
  144. package/src/specs/RNMBXImageSourceNativeComponent.ts +15 -0
  145. package/src/specs/RNMBXRasterDemSourceNativeComponent.ts +19 -0
  146. package/src/specs/RNMBXRasterSourceNativeComponent.ts +21 -0
  147. package/src/specs/RNMBXShapeSourceNativeComponent.ts +35 -0
  148. package/src/specs/RNMBXVectorSourceNativeComponent.ts +28 -0
  149. package/ios/RNMBX/RNMBXShapeSourceManager.m +0 -45
  150. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Annotation.kt +0 -0
  151. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Event.kt +0 -0
  152. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Feature.kt +0 -0
  153. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/HttpInterceptor.kt +0 -0
  154. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Image.kt +0 -0
  155. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Light.kt +0 -0
  156. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Location.kt +0 -0
  157. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/MapboxMap.kt +0 -0
  158. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/OfflineManager.kt +0 -0
  159. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/OrnamentSettings.kt +0 -0
  160. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/ResourceOption.kt +0 -0
  161. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Snapshot.kt +0 -0
  162. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/style.kt +0 -0
  163. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Annotation.kt +0 -0
  164. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Event.kt +0 -0
  165. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Feature.kt +0 -0
  166. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/HttpInterceptor.kt +0 -0
  167. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Image.kt +0 -0
  168. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Light.kt +0 -0
  169. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Location.kt +0 -0
  170. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/MapboxMap.kt +0 -0
  171. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/OfflineManager.kt +0 -0
  172. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/OrnamentSettings.kt +0 -0
  173. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/ResourceOption.kt +0 -0
  174. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Snapshot.kt +0 -0
  175. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/style.kt +0 -0
@@ -0,0 +1,153 @@
1
+ #ifdef RCT_NEW_ARCH_ENABLED
2
+
3
+ #import "RNMBXShapeSourceComponentView.h"
4
+ #import "RNMBXFabricHelpers.h"
5
+
6
+ #import <React/RCTConversions.h>
7
+ #import <React/RCTFabricComponentsPlugins.h>
8
+
9
+ #import <react/renderer/components/rnmapbox_maps_specs/ComponentDescriptors.h>
10
+ #import <react/renderer/components/rnmapbox_maps_specs/EventEmitters.h>
11
+ #import <react/renderer/components/rnmapbox_maps_specs/Props.h>
12
+ #import <react/renderer/components/rnmapbox_maps_specs/RCTComponentViewHelpers.h>
13
+
14
+ using namespace facebook::react;
15
+
16
+ @interface RNMBXShapeSourceComponentView () <RCTRNMBXShapeSourceViewProtocol>
17
+ @end
18
+
19
+ @implementation RNMBXShapeSourceComponentView {
20
+ RNMBXShapeSource *_view;
21
+ }
22
+
23
+ @synthesize mapFeature;
24
+
25
+ - (instancetype)initWithFrame:(CGRect)frame
26
+ {
27
+ if (self = [super initWithFrame:frame]) {
28
+ static const auto defaultProps = std::make_shared<const RNMBXShapeSourceProps>();
29
+ _props = defaultProps;
30
+ [self prepareView];
31
+ }
32
+
33
+ return self;
34
+ }
35
+
36
+ - (void)prepareView
37
+ {
38
+ _view = [[RNMBXShapeSource alloc] init];
39
+
40
+
41
+ // capture weak self reference to prevent retain cycle
42
+ __weak __typeof__(self) weakSelf = self;
43
+
44
+ [_view setOnPress:^(NSDictionary* event) {
45
+ __typeof__(self) strongSelf = weakSelf;
46
+
47
+ if (strongSelf != nullptr && strongSelf->_eventEmitter != nullptr) {
48
+ const auto [type, json] = RNMBXStringifyEventData(event);
49
+ std::dynamic_pointer_cast<const facebook::react::RNMBXShapeSourceEventEmitter>(strongSelf->_eventEmitter)->onMapboxShapeSourcePress({type, json});
50
+ }
51
+ }];
52
+
53
+ self.contentView = _view;
54
+ self.mapFeature = _view;
55
+ }
56
+
57
+ - (void)prepareForRecycle
58
+ {
59
+ [super prepareForRecycle];
60
+ [self prepareView];
61
+ }
62
+
63
+ - (void)mountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
64
+ {
65
+ if ([childComponentView isKindOfClass:[RCTViewComponentView class]]) {
66
+ [_view insertReactSubviewInternal:((RCTViewComponentView *)childComponentView).contentView at:index];
67
+ } else {
68
+ RCTLogError(@"Tried to add view that is not RCTViewComponentView: %@", childComponentView);
69
+ }
70
+ }
71
+
72
+ - (void)unmountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
73
+ {
74
+ if ([childComponentView isKindOfClass:[RCTViewComponentView class]]) {
75
+ [_view removeReactSubviewInternal:((RCTViewComponentView *)childComponentView).contentView];
76
+ } else {
77
+ RCTLogError(@"Tried to remove view that is not RCTViewComponentView: %@", childComponentView);
78
+ }
79
+ }
80
+
81
+ #pragma mark - RCTComponentViewProtocol
82
+
83
+ + (ComponentDescriptorProvider)componentDescriptorProvider
84
+ {
85
+ return concreteComponentDescriptorProvider<RNMBXShapeSourceComponentDescriptor>();
86
+ }
87
+
88
+ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
89
+ {
90
+ const auto &newProps = *std::static_pointer_cast<const RNMBXShapeSourceProps>(props);
91
+ id idx = RNMBXConvertFollyDynamicToId(newProps.id);
92
+ if (idx != nil) {
93
+ _view.id = idx;
94
+ }
95
+ id existing = RNMBXConvertFollyDynamicToId(newProps.existing);
96
+ if (existing != nil) {
97
+ _view.existing = existing;
98
+ }
99
+ id shape = RNMBXConvertFollyDynamicToId(newProps.shape);
100
+ if (shape != nil) {
101
+ _view.shape = shape;
102
+ }
103
+ id cluster = RNMBXConvertFollyDynamicToId(newProps.cluster);
104
+ if (cluster != nil) {
105
+ _view.cluster = cluster;
106
+ }
107
+ id clusterRadius = RNMBXConvertFollyDynamicToId(newProps.clusterRadius);
108
+ if (clusterRadius != nil) {
109
+ _view.clusterRadius = clusterRadius;
110
+ }
111
+ id clusterMaxZoomLevel = RNMBXConvertFollyDynamicToId(newProps.clusterMaxZoomLevel);
112
+ if (clusterMaxZoomLevel != nil) {
113
+ _view.clusterMaxZoomLevel = clusterMaxZoomLevel;
114
+ }
115
+ id clusterProperties = RNMBXConvertFollyDynamicToId(newProps.clusterProperties);
116
+ if (clusterProperties != nil) {
117
+ _view.clusterProperties = clusterProperties;
118
+ }
119
+ id maxZoomLevel = RNMBXConvertFollyDynamicToId(newProps.maxZoomLevel);
120
+ if (maxZoomLevel != nil) {
121
+ _view.maxZoomLevel = maxZoomLevel;
122
+ }
123
+ id buffer = RNMBXConvertFollyDynamicToId(newProps.buffer);
124
+ if (buffer != nil) {
125
+ _view.buffer = buffer;
126
+ }
127
+ id tolerance = RNMBXConvertFollyDynamicToId(newProps.tolerance);
128
+ if (tolerance != nil) {
129
+ _view.tolerance = tolerance;
130
+ }
131
+ id lineMetrics = RNMBXConvertFollyDynamicToId(newProps.lineMetrics);
132
+ if (lineMetrics != nil) {
133
+ _view.lineMetrics = lineMetrics;
134
+ }
135
+ id hasPressListener = RNMBXConvertFollyDynamicToId(newProps.hasPressListener);
136
+ if (hasPressListener != nil) {
137
+ _view.hasPressListener = hasPressListener;
138
+ }
139
+ id hitbox = RNMBXConvertFollyDynamicToId(newProps.hitbox);
140
+ if (hitbox != nil) {
141
+ _view.hitbox = hitbox;
142
+ }
143
+ [super updateProps:props oldProps:oldProps];
144
+ }
145
+
146
+ @end
147
+
148
+ Class<RCTComponentViewProtocol> RNMBXShapeSourceCls(void)
149
+ {
150
+ return RNMBXShapeSourceComponentView.class;
151
+ }
152
+
153
+ #endif // RCT_NEW_ARCH_ENABLED
@@ -0,0 +1,18 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import <UIKit/UIKit.h>
3
+
4
+ #ifdef RCT_NEW_ARCH_ENABLED
5
+ #import "rnmapbox_maps_specs.h"
6
+ #else
7
+ #import <React/RCTBridge.h>
8
+ #endif
9
+
10
+ @interface RNMBXShapeSourceModule : NSObject
11
+ #ifdef RCT_NEW_ARCH_ENABLED
12
+ <NativeRNMBXShapeSourceModuleSpec>
13
+ #else
14
+ <RCTBridgeModule>
15
+ #endif
16
+
17
+ @end
18
+
@@ -0,0 +1,87 @@
1
+ #import <React/RCTBridge.h>
2
+ #import <React/RCTUIManager.h>
3
+ #import <React/RCTUIManagerUtils.h>
4
+
5
+ #import "RNMBXShapeSourceModule.h"
6
+ #ifdef RCT_NEW_ARCH_ENABLED
7
+ #import "RNMBXShapeSourceComponentView.h"
8
+ #endif // RCT_NEW_ARCH_ENABLED
9
+
10
+ // needed for compilation for some reason
11
+ #import <CoreFoundation/CoreFoundation.h>
12
+ #import <CoreLocation/CoreLocation.h>
13
+
14
+ @interface MapView : UIView
15
+ @end
16
+
17
+ #import <rnmapbox_maps-Swift.h>
18
+
19
+
20
+ @implementation RNMBXShapeSourceModule
21
+
22
+ RCT_EXPORT_MODULE();
23
+
24
+ #ifdef RCT_NEW_ARCH_ENABLED
25
+ @synthesize viewRegistry_DEPRECATED = _viewRegistry_DEPRECATED;
26
+ #endif // RCT_NEW_ARCH_ENABLED
27
+ @synthesize bridge = _bridge;
28
+
29
+ - (dispatch_queue_t)methodQueue
30
+ {
31
+ // It seems that due to how UIBlocks work with uiManager, we need to call the methods there
32
+ // for the blocks to be dispatched before the batch is completed
33
+ return RCTGetUIManagerQueue();
34
+ }
35
+
36
+ - (void)withShapeSource:(nonnull NSNumber*)viewRef block:(void (^)(RNMBXShapeSource *))block reject:(RCTPromiseRejectBlock)reject methodName:(NSString *)methodName
37
+ {
38
+ #ifdef RCT_NEW_ARCH_ENABLED
39
+ [self.viewRegistry_DEPRECATED addUIBlock:^(RCTViewRegistry *viewRegistry) {
40
+ RNMBXShapeSourceComponentView *componentView = [self.viewRegistry_DEPRECATED viewForReactTag:viewRef];
41
+ RNMBXShapeSource *view = componentView.contentView;
42
+
43
+ #else
44
+ [self.bridge.uiManager
45
+ addUIBlock:^(RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
46
+ RNMBXShapeSource *view = [uiManager viewForReactTag:viewRef];
47
+ #endif // RCT_NEW_ARCH_ENABLED
48
+ if (view != nil) {
49
+ block(view);
50
+ } else {
51
+ reject(methodName, [NSString stringWithFormat:@"Unknown reactTag: %@", viewRef], nil);
52
+ }
53
+ }];
54
+ }
55
+
56
+
57
+ RCT_EXPORT_METHOD(getClusterChildren:(nonnull NSNumber *)viewRef featureJSON:(NSString *)featureJSON resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
58
+ {
59
+ [self withShapeSource:viewRef block:^(RNMBXShapeSource *view) {
60
+ [RNMBXShapeSourceViewManager getClusterChildrenWithShapeSource:view featureJSON:featureJSON resolver:resolve rejecter:reject];
61
+ } reject:reject methodName:@"getClusterChildren"];
62
+ }
63
+
64
+ RCT_EXPORT_METHOD(getClusterLeaves:(nonnull NSNumber *)viewRef featureJSON:(NSString *)featureJSON number:(double)number offset:(double)offset resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
65
+ {
66
+ [self withShapeSource:viewRef block:^(RNMBXShapeSource *view) {
67
+ [RNMBXShapeSourceViewManager getClusterLeavesWithShapeSource:view featureJSON:featureJSON number:number offset:offset resolver:resolve rejecter:reject];
68
+ } reject:reject methodName:@"getClusterLeaves"];
69
+ }
70
+
71
+ RCT_EXPORT_METHOD(getClusterExpansionZoom:(nonnull NSNumber *)viewRef featureJSON:(NSString *)featureJSON resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
72
+ {
73
+ [self withShapeSource:viewRef block:^(RNMBXShapeSource *view) {
74
+ [RNMBXShapeSourceViewManager getClusterExpansionZoomWithShapeSource:view featureJSON:featureJSON resolver:resolve rejecter:reject];
75
+ } reject:reject methodName:@"getClusterExpansionZoom"];
76
+ }
77
+
78
+ // Thanks to this guard, we won't compile this code when we build for the old architecture.
79
+ #ifdef RCT_NEW_ARCH_ENABLED
80
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
81
+ (const facebook::react::ObjCTurboModule::InitParams &)params
82
+ {
83
+ return std::make_shared<facebook::react::NativeRNMBXShapeSourceModuleSpecJSI>(params);
84
+ }
85
+ #endif // RCT_NEW_ARCH_ENABLED
86
+
87
+ @end
@@ -0,0 +1,26 @@
1
+ #import <React/RCTBridgeModule.h>
2
+ #import <React/RCTViewManager.h>
3
+
4
+ @interface
5
+ RCT_EXTERN_REMAP_MODULE(RNMBXShapeSource, RNMBXShapeSourceViewManager, RCTViewManager)
6
+
7
+ RCT_EXPORT_VIEW_PROPERTY(id, NSString)
8
+ RCT_EXPORT_VIEW_PROPERTY(existing, BOOL)
9
+ RCT_EXPORT_VIEW_PROPERTY(url, NSString)
10
+ RCT_EXPORT_VIEW_PROPERTY(shape, NSString)
11
+
12
+ RCT_EXPORT_VIEW_PROPERTY(cluster, NSNumber)
13
+ RCT_EXPORT_VIEW_PROPERTY(clusterRadius, NSNumber)
14
+ RCT_EXPORT_VIEW_PROPERTY(clusterMaxZoomLevel, NSNumber)
15
+ RCT_EXPORT_VIEW_PROPERTY(clusterProperties, NSDictionary)
16
+ RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, NSNumber)
17
+ RCT_EXPORT_VIEW_PROPERTY(buffer, NSNumber)
18
+ RCT_EXPORT_VIEW_PROPERTY(tolerance, NSNumber)
19
+ RCT_EXPORT_VIEW_PROPERTY(lineMetrics, NSNumber)
20
+ RCT_EXPORT_VIEW_PROPERTY(images, NSDictionary)
21
+ RCT_EXPORT_VIEW_PROPERTY(nativeImages, NSArray)
22
+ RCT_EXPORT_VIEW_PROPERTY(hasPressListener, BOOL)
23
+ RCT_EXPORT_VIEW_PROPERTY(hitbox, NSDictionary)
24
+ RCT_REMAP_VIEW_PROPERTY(onMapboxShapeSourcePress, onPress, RCTBubblingEventBlock)
25
+
26
+ @end
@@ -1,48 +1,23 @@
1
- @objc(RNMBXShapeSourceManager)
2
- class RNMBXShapeSourceManager: RCTViewManager {
1
+ @objc(RNMBXShapeSourceViewManager)
2
+ public class RNMBXShapeSourceViewManager: RCTViewManager {
3
3
  @objc
4
- override static func requiresMainQueueSetup() -> Bool {
4
+ override public static func requiresMainQueueSetup() -> Bool {
5
5
  return true
6
6
  }
7
7
 
8
- @objc override func view() -> UIView {
8
+ @objc override public func view() -> UIView {
9
9
  return RNMBXShapeSource()
10
10
  }
11
11
  }
12
-
13
- // MARK: - helpers
14
-
15
- extension RNMBXShapeSourceManager {
16
- func withShapeSource(
17
- _ reactTag: NSNumber,
18
- name: String,
19
- rejecter: @escaping RCTPromiseRejectBlock,
20
- fn: @escaping (_: RNMBXShapeSource) -> Void) -> Void
21
- {
22
- self.bridge.uiManager.addUIBlock { (manager, viewRegistry) in
23
- let view = viewRegistry![reactTag]
24
-
25
- guard let shapeSource = view! as? RNMBXShapeSource else {
26
- RNMBXLogError("Invalid react tag, could not find RNMBXShapeSource");
27
- rejecter(name, "Unknown find reactTag: \(reactTag)", nil)
28
- return;
29
- }
30
-
31
- fn(shapeSource)
32
- }
33
- }
34
- }
35
-
36
12
  // MARK: - react methods
37
13
 
38
- extension RNMBXShapeSourceManager {
39
- @objc func getClusterExpansionZoom(
40
- _ reactTag: NSNumber,
14
+ extension RNMBXShapeSourceViewManager {
15
+ @objc public static func getClusterExpansionZoom(
16
+ shapeSource: RNMBXShapeSource,
41
17
  featureJSON: String,
42
18
  resolver: @escaping RCTPromiseResolveBlock,
43
19
  rejecter: @escaping RCTPromiseRejectBlock) -> Void
44
20
  {
45
- self.withShapeSource(reactTag, name:"getCluster ExpansionZoom", rejecter: rejecter) { shapeSource in
46
21
  shapeSource.getClusterExpansionZoom(featureJSON) { result in
47
22
  switch result {
48
23
  case .success(let zoom):
@@ -53,19 +28,17 @@ extension RNMBXShapeSourceManager {
53
28
  rejecter(error.localizedDescription, "Error.getClusterExpansionZoom", error)
54
29
  }
55
30
  }
56
- }
57
31
  }
58
32
 
59
- @objc func getClusterLeaves(
60
- _ reactTag: NSNumber,
33
+ @objc public static func getClusterLeaves(
34
+ shapeSource: RNMBXShapeSource,
61
35
  featureJSON: String,
62
36
  number: uint,
63
37
  offset: uint,
64
38
  resolver: @escaping RCTPromiseResolveBlock,
65
39
  rejecter: @escaping RCTPromiseRejectBlock) -> Void
66
40
  {
67
- self.withShapeSource(reactTag, name:"getClusterLeaves", rejecter: rejecter) { shapeSource in
68
- shapeSource.getClusterLeaves(featureJSON, number: number, offset: offset) { result in
41
+ shapeSource.getClusterLeaves(featureJSON, number: number, offset: offset) { result in
69
42
  switch result {
70
43
  case .success(let features):
71
44
  logged("getClusterLeaves", rejecter: rejecter) {
@@ -77,16 +50,14 @@ extension RNMBXShapeSourceManager {
77
50
  case .failure(let error):
78
51
  rejecter(error.localizedDescription, "Error.getClusterLeaves", error)
79
52
  }
80
- }
81
53
  }
82
54
  }
83
55
 
84
- @objc func getClusterChildren(
85
- _ reactTag: NSNumber,
56
+ @objc public static func getClusterChildren(
57
+ shapeSource: RNMBXShapeSource,
86
58
  featureJSON: String,
87
59
  resolver: @escaping RCTPromiseResolveBlock,
88
60
  rejecter: @escaping RCTPromiseRejectBlock) -> Void {
89
- self.withShapeSource(reactTag, name:"getClusterChildren", rejecter: rejecter) { shapeSource in
90
61
  shapeSource.getClusterChildren(featureJSON) { result in
91
62
  switch result {
92
63
  case .success(let features):
@@ -101,6 +72,5 @@ extension RNMBXShapeSourceManager {
101
72
  }
102
73
  }
103
74
  }
104
- }
105
75
  }
106
76
 
@@ -5,6 +5,7 @@
5
5
 
6
6
  #import <React/RCTConversions.h>
7
7
  #import <React/RCTFabricComponentsPlugins.h>
8
+ #import <React/RCTBridge+Private.h>
8
9
 
9
10
  #import <react/renderer/components/rnmapbox_maps_specs/ComponentDescriptors.h>
10
11
  #import <react/renderer/components/rnmapbox_maps_specs/EventEmitters.h>
@@ -34,6 +35,7 @@ using namespace facebook::react;
34
35
  - (void)prepareView
35
36
  {
36
37
  _view = [[RNMBXSkyLayer alloc] init];
38
+ _view.bridge = [RCTBridge currentBridge];
37
39
  self.contentView = _view;
38
40
  }
39
41
 
@@ -1,7 +1,7 @@
1
1
  @_spi(Experimental) import MapboxMaps
2
2
 
3
3
  @objc
4
- class RNMBXSource : RNMBXInteractiveElement {
4
+ public class RNMBXSource : RNMBXInteractiveElement {
5
5
  var layers: [RNMBXSourceConsumer] = []
6
6
  var components: [RNMBXMapComponent] = []
7
7
 
@@ -9,7 +9,7 @@ class RNMBXSource : RNMBXInteractiveElement {
9
9
 
10
10
  var ownsSource : Bool = false
11
11
 
12
- @objc var existing: Bool = false
12
+ @objc public var existing: Bool = false
13
13
 
14
14
  override func getLayerIDs() -> [String] {
15
15
  layers.compactMap {
@@ -31,37 +31,46 @@ class RNMBXSource : RNMBXInteractiveElement {
31
31
 
32
32
  // MARK: - UIView+React
33
33
 
34
- @objc override func insertReactSubview(_ subview: UIView!, at atIndex: Int) {
35
- if let layer = subview as? RNMBXSourceConsumer {
36
- if let map = map {
37
- layer.addToMap(map, style: map.mapboxMap.style)
38
- }
39
- layers.append(layer)
40
- } else if let component = subview as? RNMBXMapComponent {
41
- if let map = map {
42
- component.addToMap(map, style: map.mapboxMap.style)
43
- }
44
- components.append(component)
45
- }
34
+ @objc public override func insertReactSubview(_ subview: UIView!, at atIndex: Int) {
35
+ insertReactSubviewInternal(subview, at: atIndex)
46
36
  super.insertReactSubview(subview, at: atIndex)
47
37
  }
48
-
49
- @objc override func removeReactSubview(_ subview: UIView!) {
50
- if let layer : RNMBXSourceConsumer = subview as? RNMBXSourceConsumer {
51
- if let map = map {
52
- layer.removeFromMap(map, style: map.mapboxMap.style)
53
- }
54
- layers.removeAll { $0 as AnyObject === layer }
55
- } else if let component = subview as? RNMBXMapComponent {
56
- if let map = map {
57
- component.removeFromMap(map, reason: .ViewRemoval)
58
- }
59
- layers.removeAll { $0 as AnyObject === component }
38
+
39
+ @objc public func insertReactSubviewInternal(_ subview: UIView!, at atIndex: Int) {
40
+ if let layer = subview as? RNMBXSourceConsumer {
41
+ if let map = map {
42
+ layer.addToMap(map, style: map.mapboxMap.style)
43
+ }
44
+ layers.append(layer)
45
+ } else if let component = subview as? RNMBXMapComponent {
46
+ if let map = map {
47
+ component.addToMap(map, style: map.mapboxMap.style)
48
+ }
49
+ components.append(component)
50
+ }
60
51
  }
52
+
53
+ @objc public override func removeReactSubview(_ subview: UIView!) {
54
+ removeReactSubviewInternal(subview)
61
55
  super.removeReactSubview(subview)
62
56
  }
57
+
58
+ @objc public func removeReactSubviewInternal(_ subview: UIView!) {
59
+ if let layer : RNMBXSourceConsumer = subview as? RNMBXSourceConsumer {
60
+ if let map = map {
61
+ layer.removeFromMap(map, style: map.mapboxMap.style)
62
+ }
63
+ layers.removeAll { $0 as AnyObject === layer }
64
+ } else if let component = subview as? RNMBXMapComponent {
65
+ if let map = map {
66
+ component.removeFromMap(map, reason: .ViewRemoval)
67
+ }
68
+ layers.removeAll { $0 as AnyObject === component }
69
+ }
70
+ }
71
+
63
72
 
64
- @objc override func didUpdateReactSubviews() {
73
+ @objc public override func didUpdateReactSubviews() {
65
74
  // do nothing to prevent inserting layers to UIView hierarchy
66
75
  }
67
76
 
@@ -5,6 +5,7 @@
5
5
 
6
6
  #import <React/RCTConversions.h>
7
7
  #import <React/RCTFabricComponentsPlugins.h>
8
+ #import <React/RCTBridge+Private.h>
8
9
 
9
10
  #import <react/renderer/components/rnmapbox_maps_specs/ComponentDescriptors.h>
10
11
  #import <react/renderer/components/rnmapbox_maps_specs/EventEmitters.h>
@@ -34,6 +35,7 @@ using namespace facebook::react;
34
35
  - (void)prepareView
35
36
  {
36
37
  _view = [[RNMBXSymbolLayer alloc] init];
38
+ _view.bridge = [RCTBridge currentBridge];
37
39
  self.contentView = _view;
38
40
  }
39
41
 
@@ -1,5 +1,5 @@
1
1
  @objc
2
- class RNMBXTileSource : RNMBXSource {
3
- @objc var url: String? = nil
2
+ public class RNMBXTileSource : RNMBXSource {
3
+ @objc public var url: String? = nil
4
4
 
5
5
  }
@@ -1,13 +1,13 @@
1
1
  import MapboxMaps
2
2
 
3
3
  @objc
4
- class RNMBXVectorSource : RNMBXTileSource {
4
+ public class RNMBXVectorSource : RNMBXTileSource {
5
5
 
6
- @objc var attribution: String?
7
- @objc var maxZoomLevel: NSNumber?
8
- @objc var minZoomLevel: NSNumber?
9
- @objc var tileUrlTemplates: [String] = []
10
- @objc var tms: Bool = false
6
+ @objc public var attribution: String?
7
+ @objc public var maxZoomLevel: NSNumber?
8
+ @objc public var minZoomLevel: NSNumber?
9
+ @objc public var tileUrlTemplates: [String] = []
10
+ @objc public var tms: Bool = false
11
11
 
12
12
  override func sourceType() -> Source.Type {
13
13
  return VectorSource.self
@@ -0,0 +1,17 @@
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
+ #import "RNMBXMapFeatureView.h"
9
+
10
+ NS_ASSUME_NONNULL_BEGIN
11
+
12
+ @interface RNMBXVectorSourceComponentView : RCTViewComponentView <RNMBXMapFeatureView>
13
+ @end
14
+
15
+ NS_ASSUME_NONNULL_END
16
+
17
+ #endif // RCT_NEW_ARCH_ENABLED