@rnmapbox/maps 10.1.27 → 10.1.29-rc.0
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/README.md +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt +23 -22
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt +0 -8
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt +3 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt +2 -2
- package/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt +1 -1
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeMapViewModuleSpec.java +13 -13
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXCameraModuleSpec.java +1 -1
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXChangeLineOffsetsShapeAnimatorModuleSpec.java +4 -4
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXImageModuleSpec.java +1 -1
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXMovePointShapeAnimatorModuleSpec.java +2 -2
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXPointAnnotationModuleSpec.java +1 -1
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXShapeSourceModuleSpec.java +3 -3
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXTileStoreModuleSpec.java +1 -1
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXViewportModuleSpec.java +3 -3
- package/ios/RNMBX/Extensions/Array+asExpressions.swift +1 -1
- package/ios/RNMBX/RNMBXFabricPropConvert.h +11 -3
- package/ios/RNMBX/RNMBXFabricPropConvert.mm +21 -1
- package/ios/RNMBX/RNMBXLayer.swift +37 -37
- package/ios/RNMBX/RNMBXMapViewComponentView.mm +1 -4
- package/ios/RNMBX/RNMBXShapeSourceComponentView.mm +18 -53
- package/ios/RNMBX/RNMBXStyleValue.swift +50 -50
- package/lib/commonjs/RNMBXModule.js +2 -3
- package/lib/commonjs/RNMBXModule.js.map +1 -1
- package/lib/commonjs/components/UserLocation.js.map +1 -1
- package/lib/commonjs/specs/RNMBXMapViewNativeComponent.js.map +1 -1
- package/lib/commonjs/web/components/Camera.js +53 -0
- package/lib/commonjs/web/components/Camera.js.map +1 -1
- package/lib/commonjs/web/index.js +1 -0
- package/lib/commonjs/web/index.js.map +1 -1
- package/lib/module/RNMBXModule.js +2 -3
- package/lib/module/RNMBXModule.js.map +1 -1
- package/lib/module/components/UserLocation.js +2 -2
- package/lib/module/components/UserLocation.js.map +1 -1
- package/lib/module/specs/RNMBXMapViewNativeComponent.js.map +1 -1
- package/lib/module/web/components/Camera.js +53 -0
- package/lib/module/web/components/Camera.js.map +1 -1
- package/lib/module/web/index.js +2 -1
- package/lib/module/web/index.js.map +1 -1
- package/lib/typescript/src/RNMBXModule.d.ts.map +1 -1
- package/lib/typescript/src/components/UserLocation.d.ts +1 -1
- package/lib/typescript/src/specs/RNMBXMapViewNativeComponent.d.ts +2 -2
- package/lib/typescript/src/specs/RNMBXMapViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/types/Position.d.ts +1 -1
- package/lib/typescript/src/web/components/Camera.d.ts +2 -1
- package/lib/typescript/src/web/components/Camera.d.ts.map +1 -1
- package/package.json +4 -1
- package/src/RNMBXModule.ts +2 -1
- package/src/components/UserLocation.tsx +3 -3
- package/src/specs/RNMBXMapViewNativeComponent.ts +2 -1
- package/src/types/Position.ts +1 -1
- package/src/web/components/Camera.tsx +61 -1
- package/src/web/index.js +3 -1
package/README.md
CHANGED
|
@@ -252,4 +252,4 @@ Help drive this repo forward - be a sponsor. Add a comment [here](https://github
|
|
|
252
252
|
---
|
|
253
253
|
## Developer Group
|
|
254
254
|
|
|
255
|
-
Have a question or need some help?
|
|
255
|
+
Have a question or need some help? Use [Github discussions](https://github.com/rnmapbox/maps/discussions) or the [react-native channel](https://discord.com/channels/1004826913229000704/1092426983696248893) in the mapbox discord.
|
|
@@ -99,9 +99,11 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
|
|
|
99
99
|
override fun addToMap(mapView: RNMBXMapView) {
|
|
100
100
|
super.addToMap(mapView)
|
|
101
101
|
mapView.callIfAttachedToWindow {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
withMapView { mapView ->
|
|
103
|
+
setInitialCamera(mapView)
|
|
104
|
+
updateMaxBounds(mapView)
|
|
105
|
+
mCameraStop?.let { updateCamera(it, mapView) }
|
|
106
|
+
}
|
|
105
107
|
}
|
|
106
108
|
_observeViewportState(mapView.mapView)
|
|
107
109
|
_updateViewportState()
|
|
@@ -117,8 +119,8 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
|
|
|
117
119
|
fun setStop(stop: CameraStop) {
|
|
118
120
|
mCameraStop = stop
|
|
119
121
|
stop.setCallback(mCameraCallback)
|
|
120
|
-
|
|
121
|
-
stop.let { updateCamera(it) }
|
|
122
|
+
withMapView { mapView ->
|
|
123
|
+
stop.let { updateCamera(it, mapView) }
|
|
122
124
|
}
|
|
123
125
|
}
|
|
124
126
|
|
|
@@ -172,25 +174,24 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
|
|
|
172
174
|
|
|
173
175
|
fun setMaxBounds(bounds: LatLngBounds?) {
|
|
174
176
|
mMaxBounds = bounds
|
|
175
|
-
|
|
177
|
+
withMapView { mapView ->
|
|
178
|
+
updateMaxBounds(mapView)
|
|
179
|
+
}
|
|
176
180
|
}
|
|
177
181
|
|
|
178
182
|
|
|
179
|
-
private fun updateMaxBounds() {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
mCameraStop?.let { updateCamera(it) }
|
|
188
|
-
}
|
|
183
|
+
private fun updateMaxBounds(mapView: RNMBXMapView) {
|
|
184
|
+
val map = mapView.getMapboxMap()
|
|
185
|
+
val builder = CameraBoundsOptions.Builder()
|
|
186
|
+
builder.bounds(mMaxBounds?.toBounds())
|
|
187
|
+
builder.minZoom(mMinZoomLevel ?: 0.0) // Passing null does not reset this value.
|
|
188
|
+
builder.maxZoom(mMaxZoomLevel ?: 25.0) // Passing null does not reset this value.
|
|
189
|
+
map.setBounds(builder.build())
|
|
190
|
+
mCameraStop?.let { updateCamera(it, mapView) }
|
|
189
191
|
}
|
|
190
192
|
|
|
191
|
-
private fun setInitialCamera() {
|
|
193
|
+
private fun setInitialCamera(mapView: RNMBXMapView) {
|
|
192
194
|
mDefaultStop?.let {
|
|
193
|
-
val mapView = mMapView!!
|
|
194
195
|
val map = mapView.getMapboxMap()
|
|
195
196
|
|
|
196
197
|
it.setDuration(0)
|
|
@@ -200,9 +201,9 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
|
|
|
200
201
|
}
|
|
201
202
|
}
|
|
202
203
|
|
|
203
|
-
private fun updateCamera(cameraStop: CameraStop) {
|
|
204
|
+
private fun updateCamera(cameraStop: CameraStop, mapView: RNMBXMapView) {
|
|
204
205
|
mCameraUpdateQueue.offer(cameraStop)
|
|
205
|
-
mCameraUpdateQueue.execute(
|
|
206
|
+
mCameraUpdateQueue.execute(mapView)
|
|
206
207
|
}
|
|
207
208
|
|
|
208
209
|
private fun updateUserLocation(isAnimated: Boolean) {
|
|
@@ -243,12 +244,12 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame
|
|
|
243
244
|
|
|
244
245
|
fun setMinZoomLevel(zoomLevel: Double?) {
|
|
245
246
|
mMinZoomLevel = zoomLevel
|
|
246
|
-
updateMaxBounds()
|
|
247
|
+
withMapView { updateMaxBounds(it) }
|
|
247
248
|
}
|
|
248
249
|
|
|
249
250
|
fun setMaxZoomLevel(zoomLevel: Double?) {
|
|
250
251
|
mMaxZoomLevel = zoomLevel
|
|
251
|
-
updateMaxBounds()
|
|
252
|
+
withMapView { updateMaxBounds(it) }
|
|
252
253
|
}
|
|
253
254
|
|
|
254
255
|
fun setZoomLevel(zoomLevel: Double) {
|
|
@@ -152,14 +152,6 @@ class NativeMapViewModule(context: ReactApplicationContext, val viewTagResolver:
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
public fun setHandledMapChangedEvents(
|
|
156
|
-
viewRef: Double?,
|
|
157
|
-
events: ReadableArray,
|
|
158
|
-
promise: Promise
|
|
159
|
-
) {
|
|
160
|
-
setHandledMapChangedEvents(viewRef?.toInt(), events, promise)
|
|
161
|
-
}
|
|
162
|
-
|
|
163
155
|
override fun clearData(viewRef: ViewRefTag?, promise: Promise) {
|
|
164
156
|
withMapViewOnUIThread(viewRef, promise) {
|
|
165
157
|
it.clearData(createCommandResponse(promise))
|
|
@@ -309,7 +309,9 @@ abstract class RNMBXLayer<T : Layer?>(protected var mContext: Context) : Abstrac
|
|
|
309
309
|
val layer = mLayer
|
|
310
310
|
if (layer != null) {
|
|
311
311
|
it.removeStyleLayer(layer.layerId)
|
|
312
|
-
|
|
312
|
+
if (reason != RemovalReason.REORDER) {
|
|
313
|
+
mLayer = null // see https://github.com/rnmapbox/maps/pull/3392
|
|
314
|
+
}
|
|
313
315
|
} else {
|
|
314
316
|
Logger.e("RNMBXLayer","mLayer is null on removal layer from map")
|
|
315
317
|
}
|
package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt
CHANGED
|
@@ -44,8 +44,8 @@ class RNMBXShapeSourceModule(reactContext: ReactApplicationContext?, private val
|
|
|
44
44
|
override fun getClusterLeaves(
|
|
45
45
|
viewRef: ViewRefTag?,
|
|
46
46
|
featureJSON: String,
|
|
47
|
-
number:
|
|
48
|
-
offset:
|
|
47
|
+
number: Double,
|
|
48
|
+
offset: Double,
|
|
49
49
|
promise: Promise
|
|
50
50
|
) {
|
|
51
51
|
withShapeSourceOnUIThread(viewRef, promise) {
|
|
@@ -16,7 +16,7 @@ data class ViewTagWaiter<V>(
|
|
|
16
16
|
|
|
17
17
|
const val LOG_TAG = "ViewTagResolver"
|
|
18
18
|
|
|
19
|
-
typealias ViewRefTag =
|
|
19
|
+
typealias ViewRefTag = Double
|
|
20
20
|
// see https://github.com/rnmapbox/maps/pull/3074
|
|
21
21
|
open class ViewTagResolver(val context: ReactApplicationContext) {
|
|
22
22
|
private val createdViews: HashSet<Int> = hashSetOf<Int>()
|
|
@@ -37,53 +37,53 @@ public abstract class NativeMapViewModuleSpec extends ReactContextBaseJavaModule
|
|
|
37
37
|
|
|
38
38
|
@ReactMethod
|
|
39
39
|
@DoNotStrip
|
|
40
|
-
public abstract void takeSnap(@Nullable
|
|
40
|
+
public abstract void takeSnap(@Nullable Double viewRef, boolean writeToDisk, Promise promise);
|
|
41
41
|
|
|
42
42
|
@ReactMethod
|
|
43
43
|
@DoNotStrip
|
|
44
|
-
public abstract void queryTerrainElevation(@Nullable
|
|
44
|
+
public abstract void queryTerrainElevation(@Nullable Double viewRef, ReadableArray coordinates, Promise promise);
|
|
45
45
|
|
|
46
46
|
@ReactMethod
|
|
47
47
|
@DoNotStrip
|
|
48
|
-
public abstract void setSourceVisibility(@Nullable
|
|
48
|
+
public abstract void setSourceVisibility(@Nullable Double viewRef, boolean visible, String sourceId, String sourceLayerId, Promise promise);
|
|
49
49
|
|
|
50
50
|
@ReactMethod
|
|
51
51
|
@DoNotStrip
|
|
52
|
-
public abstract void getCenter(@Nullable
|
|
52
|
+
public abstract void getCenter(@Nullable Double viewRef, Promise promise);
|
|
53
53
|
|
|
54
54
|
@ReactMethod
|
|
55
55
|
@DoNotStrip
|
|
56
|
-
public abstract void getCoordinateFromView(@Nullable
|
|
56
|
+
public abstract void getCoordinateFromView(@Nullable Double viewRef, ReadableArray atPoint, Promise promise);
|
|
57
57
|
|
|
58
58
|
@ReactMethod
|
|
59
59
|
@DoNotStrip
|
|
60
|
-
public abstract void getPointInView(@Nullable
|
|
60
|
+
public abstract void getPointInView(@Nullable Double viewRef, ReadableArray atCoordinate, Promise promise);
|
|
61
61
|
|
|
62
62
|
@ReactMethod
|
|
63
63
|
@DoNotStrip
|
|
64
|
-
public abstract void getZoom(@Nullable
|
|
64
|
+
public abstract void getZoom(@Nullable Double viewRef, Promise promise);
|
|
65
65
|
|
|
66
66
|
@ReactMethod
|
|
67
67
|
@DoNotStrip
|
|
68
|
-
public abstract void getVisibleBounds(@Nullable
|
|
68
|
+
public abstract void getVisibleBounds(@Nullable Double viewRef, Promise promise);
|
|
69
69
|
|
|
70
70
|
@ReactMethod
|
|
71
71
|
@DoNotStrip
|
|
72
|
-
public abstract void queryRenderedFeaturesAtPoint(@Nullable
|
|
72
|
+
public abstract void queryRenderedFeaturesAtPoint(@Nullable Double viewRef, ReadableArray atPoint, ReadableArray withFilter, ReadableArray withLayerIDs, Promise promise);
|
|
73
73
|
|
|
74
74
|
@ReactMethod
|
|
75
75
|
@DoNotStrip
|
|
76
|
-
public abstract void queryRenderedFeaturesInRect(@Nullable
|
|
76
|
+
public abstract void queryRenderedFeaturesInRect(@Nullable Double viewRef, ReadableArray withBBox, ReadableArray withFilter, ReadableArray withLayerIDs, Promise promise);
|
|
77
77
|
|
|
78
78
|
@ReactMethod
|
|
79
79
|
@DoNotStrip
|
|
80
|
-
public abstract void setHandledMapChangedEvents(@Nullable
|
|
80
|
+
public abstract void setHandledMapChangedEvents(@Nullable Double viewRef, ReadableArray events, Promise promise);
|
|
81
81
|
|
|
82
82
|
@ReactMethod
|
|
83
83
|
@DoNotStrip
|
|
84
|
-
public abstract void clearData(@Nullable
|
|
84
|
+
public abstract void clearData(@Nullable Double viewRef, Promise promise);
|
|
85
85
|
|
|
86
86
|
@ReactMethod
|
|
87
87
|
@DoNotStrip
|
|
88
|
-
public abstract void querySourceFeatures(@Nullable
|
|
88
|
+
public abstract void querySourceFeatures(@Nullable Double viewRef, String sourceId, ReadableArray withFilter, ReadableArray withSourceLayerIDs, Promise promise);
|
|
89
89
|
}
|
|
@@ -37,5 +37,5 @@ public abstract class NativeRNMBXCameraModuleSpec extends ReactContextBaseJavaMo
|
|
|
37
37
|
|
|
38
38
|
@ReactMethod
|
|
39
39
|
@DoNotStrip
|
|
40
|
-
public abstract void updateCameraStop(@Nullable
|
|
40
|
+
public abstract void updateCameraStop(@Nullable Double viewRef, ReadableMap stop, Promise promise);
|
|
41
41
|
}
|
|
@@ -36,17 +36,17 @@ public abstract class NativeRNMBXChangeLineOffsetsShapeAnimatorModuleSpec extend
|
|
|
36
36
|
|
|
37
37
|
@ReactMethod
|
|
38
38
|
@DoNotStrip
|
|
39
|
-
public abstract void create(
|
|
39
|
+
public abstract void create(double tag, ReadableArray coordinates, double startOffset, double endOffset, Promise promise);
|
|
40
40
|
|
|
41
41
|
@ReactMethod
|
|
42
42
|
@DoNotStrip
|
|
43
|
-
public abstract void setLineString(
|
|
43
|
+
public abstract void setLineString(double tag, ReadableArray coordinates, double startOffset, double endOffset, Promise promise);
|
|
44
44
|
|
|
45
45
|
@ReactMethod
|
|
46
46
|
@DoNotStrip
|
|
47
|
-
public abstract void setStartOffset(
|
|
47
|
+
public abstract void setStartOffset(double tag, double offset, double duration, Promise promise);
|
|
48
48
|
|
|
49
49
|
@ReactMethod
|
|
50
50
|
@DoNotStrip
|
|
51
|
-
public abstract void setEndOffset(
|
|
51
|
+
public abstract void setEndOffset(double tag, double offset, double duration, Promise promise);
|
|
52
52
|
}
|
|
@@ -36,5 +36,5 @@ public abstract class NativeRNMBXImageModuleSpec extends ReactContextBaseJavaMod
|
|
|
36
36
|
|
|
37
37
|
@ReactMethod
|
|
38
38
|
@DoNotStrip
|
|
39
|
-
public abstract void refresh(@Nullable
|
|
39
|
+
public abstract void refresh(@Nullable Double viewRef, Promise promise);
|
|
40
40
|
}
|
|
@@ -36,9 +36,9 @@ public abstract class NativeRNMBXMovePointShapeAnimatorModuleSpec extends ReactC
|
|
|
36
36
|
|
|
37
37
|
@ReactMethod
|
|
38
38
|
@DoNotStrip
|
|
39
|
-
public abstract void create(
|
|
39
|
+
public abstract void create(double tag, ReadableArray coordinate, Promise promise);
|
|
40
40
|
|
|
41
41
|
@ReactMethod
|
|
42
42
|
@DoNotStrip
|
|
43
|
-
public abstract void moveTo(
|
|
43
|
+
public abstract void moveTo(double tag, ReadableArray coordinate, double duration, Promise promise);
|
|
44
44
|
}
|
package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXPointAnnotationModuleSpec.java
CHANGED
|
@@ -36,5 +36,5 @@ public abstract class NativeRNMBXPointAnnotationModuleSpec extends ReactContextB
|
|
|
36
36
|
|
|
37
37
|
@ReactMethod
|
|
38
38
|
@DoNotStrip
|
|
39
|
-
public abstract void refresh(@Nullable
|
|
39
|
+
public abstract void refresh(@Nullable Double viewRef, Promise promise);
|
|
40
40
|
}
|
|
@@ -36,13 +36,13 @@ public abstract class NativeRNMBXShapeSourceModuleSpec extends ReactContextBaseJ
|
|
|
36
36
|
|
|
37
37
|
@ReactMethod
|
|
38
38
|
@DoNotStrip
|
|
39
|
-
public abstract void getClusterExpansionZoom(@Nullable
|
|
39
|
+
public abstract void getClusterExpansionZoom(@Nullable Double viewRef, String featureJSON, Promise promise);
|
|
40
40
|
|
|
41
41
|
@ReactMethod
|
|
42
42
|
@DoNotStrip
|
|
43
|
-
public abstract void getClusterLeaves(@Nullable
|
|
43
|
+
public abstract void getClusterLeaves(@Nullable Double viewRef, String featureJSON, double number, double offset, Promise promise);
|
|
44
44
|
|
|
45
45
|
@ReactMethod
|
|
46
46
|
@DoNotStrip
|
|
47
|
-
public abstract void getClusterChildren(@Nullable
|
|
47
|
+
public abstract void getClusterChildren(@Nullable Double viewRef, String featureJSON, Promise promise);
|
|
48
48
|
}
|
|
@@ -41,5 +41,5 @@ public abstract class NativeRNMBXTileStoreModuleSpec extends ReactContextBaseJav
|
|
|
41
41
|
|
|
42
42
|
@ReactMethod
|
|
43
43
|
@DoNotStrip
|
|
44
|
-
public abstract void setOption(
|
|
44
|
+
public abstract void setOption(double tag, String key, String domain, ReadableMap value, Promise promise);
|
|
45
45
|
}
|
|
@@ -37,13 +37,13 @@ public abstract class NativeRNMBXViewportModuleSpec extends ReactContextBaseJava
|
|
|
37
37
|
|
|
38
38
|
@ReactMethod
|
|
39
39
|
@DoNotStrip
|
|
40
|
-
public abstract void getState(@Nullable
|
|
40
|
+
public abstract void getState(@Nullable Double viewRef, Promise promise);
|
|
41
41
|
|
|
42
42
|
@ReactMethod
|
|
43
43
|
@DoNotStrip
|
|
44
|
-
public abstract void transitionTo(@Nullable
|
|
44
|
+
public abstract void transitionTo(@Nullable Double viewRef, ReadableMap state, ReadableMap transition, Promise promise);
|
|
45
45
|
|
|
46
46
|
@ReactMethod
|
|
47
47
|
@DoNotStrip
|
|
48
|
-
public abstract void idle(@Nullable
|
|
48
|
+
public abstract void idle(@Nullable Double viewRef, Promise promise);
|
|
49
49
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import MapboxMaps
|
|
2
2
|
|
|
3
3
|
internal extension Array where Element == Any {
|
|
4
|
-
func asExpression() throws -> Expression? {
|
|
4
|
+
func asExpression() throws -> MapboxMaps.Expression? {
|
|
5
5
|
let filter = self
|
|
6
6
|
if filter.count > 0 {
|
|
7
7
|
let data = try JSONSerialization.data(withJSONObject: filter, options: .prettyPrinted)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
*
|
|
5
|
-
* 1.
|
|
5
|
+
* 1. Requires the following prelude
|
|
6
6
|
* const auto &oldViewProps = static_cast<const RNMBXNativeUserLocationProps &>(*oldProps);
|
|
7
7
|
* const auto &newViewProps = static_cast<const RNMBXNativeUserLocationProps &>(*props);
|
|
8
8
|
*
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
NSNumber* RNMBXPropConvert_Optional_BOOL_NSNumber(const folly::dynamic &dyn, NSString* propertyName);
|
|
13
13
|
BOOL RNMBXPropConvert_Optional_BOOL(const folly::dynamic &dyn, NSString* propertyName);
|
|
14
14
|
NSString* RNMBXPropConvert_Optional_NSString(const folly::dynamic &dyn, NSString* propertyName);
|
|
15
|
+
NSNumber* RNMBXPropConvert_Optional_NSNumber(const folly::dynamic &dyn, NSString* propertyName);
|
|
15
16
|
id RNMBXPropConvert_Optional_ExpressionDouble(const folly::dynamic &dyn, NSString* propertyName);
|
|
16
17
|
BOOL RNMBXPropConvert_BOOL(const folly::dynamic &dyn, NSString* propertyName);
|
|
17
18
|
NSDictionary* RNMBXPropConvert_Optional_NSDictionary(const folly::dynamic &dyn, NSString* propertyName);
|
|
@@ -21,16 +22,23 @@ NSDictionary* RNMBXPropConvert_Optional_NSDictionary(const folly::dynamic &dyn,
|
|
|
21
22
|
_view.name = RNMBXPropConvert_Optional_BOOL_NSNumber(newViewProps.name, @#name); \
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
#define
|
|
25
|
+
#define RNMBX_REMAP_OPTIONAL_PROP_BOOL(name, viewName) \
|
|
25
26
|
if ((!oldProps.get() || oldViewProps.name != newViewProps.name) && !newViewProps.name.isNull()) { \
|
|
26
|
-
_view.
|
|
27
|
+
_view.viewName = RNMBXPropConvert_Optional_BOOL(newViewProps.name, @#name); \
|
|
27
28
|
}
|
|
28
29
|
|
|
30
|
+
#define RNMBX_OPTIONAL_PROP_BOOL(name) RNMBX_REMAP_OPTIONAL_PROP_BOOL(name, name)
|
|
31
|
+
|
|
29
32
|
#define RNMBX_OPTIONAL_PROP_NSString(name) \
|
|
30
33
|
if ((!oldProps.get() || oldViewProps.name != newViewProps.name) && !newViewProps.name.isNull()) { \
|
|
31
34
|
_view.name = RNMBXPropConvert_Optional_NSString(newViewProps.name, @#name); \
|
|
32
35
|
}
|
|
33
36
|
|
|
37
|
+
#define RNMBX_OPTIONAL_PROP_NSNumber(name) \
|
|
38
|
+
if ((!oldProps.get() || oldViewProps.name != newViewProps.name) && !newViewProps.name.isNull()) { \
|
|
39
|
+
_view.name = RNMBXPropConvert_Optional_NSNumber(newViewProps.name, @#name); \
|
|
40
|
+
}
|
|
41
|
+
|
|
34
42
|
#define RNMBX_OPTIONAL_PROP_ExpressionDouble(name) \
|
|
35
43
|
if ((!oldProps.get() || oldViewProps.name != newViewProps.name) && !newViewProps.name.isNull()) { \
|
|
36
44
|
_view.name = RNMBXPropConvert_Optional_ExpressionDouble(newViewProps.name, @#name); \
|
|
@@ -55,7 +55,7 @@ BOOL RNMBXPropConvert_Optional_BOOL(const folly::dynamic &dyn, NSString* propert
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
NSString* RNMBXPropConvert_Optional_NSString(const folly::dynamic &dyn, NSString* propertyName) {
|
|
58
|
-
|
|
58
|
+
switch (dyn.type()) {
|
|
59
59
|
case folly::dynamic::STRING:
|
|
60
60
|
return [NSString stringWithCString:dyn.getString().c_str() encoding:NSUTF8StringEncoding];
|
|
61
61
|
case folly::dynamic::NULLT:
|
|
@@ -71,6 +71,26 @@ NSString* RNMBXPropConvert_Optional_NSString(const folly::dynamic &dyn, NSString
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
NSNumber* RNMBXPropConvert_Optional_NSNumber(const folly::dynamic &dyn, NSString* propertyName) {
|
|
75
|
+
switch (dyn.type()) {
|
|
76
|
+
case folly::dynamic::INT64:
|
|
77
|
+
return @(dyn.getInt());
|
|
78
|
+
case folly::dynamic::DOUBLE:
|
|
79
|
+
return @(dyn.getDouble());
|
|
80
|
+
case folly::dynamic::NULLT:
|
|
81
|
+
return nil;
|
|
82
|
+
default:
|
|
83
|
+
std::stringstream ss;
|
|
84
|
+
ss << dyn;
|
|
85
|
+
[RNMBXLogger error:[NSString stringWithFormat:@"Property %@ expected to be a number or nil but was: %s",
|
|
86
|
+
propertyName,
|
|
87
|
+
ss.str().c_str()
|
|
88
|
+
]];
|
|
89
|
+
return nil;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
|
|
74
94
|
|
|
75
95
|
id RNMBXPropConvert_ID(const folly::dynamic &dyn)
|
|
76
96
|
{
|