@rnmapbox/maps 10.1.41-rc.2 → 10.1.41-rc.3

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.
@@ -78,13 +78,130 @@ android {
78
78
  }
79
79
  java.srcDirs += 'src/main/rn-compat/rn75'
80
80
 
81
+ // Adapted from react-native-screens for consistency
82
+ // https://github.com/software-mansion/react-native-screens/blob/main/android/build.gradle
83
+ def resolveReactNativeDirectory = {
84
+ // 1. User-defined path
85
+ def userDefinedRnDirPath = safeExtGet("REACT_NATIVE_NODE_MODULES_DIR", null)
86
+ if (userDefinedRnDirPath != null) {
87
+ return file(userDefinedRnDirPath)
88
+ }
89
+
90
+ // 2. Standard monorepo location
91
+ def standardRnDirFile = file("$rootDir/../node_modules/react-native/")
92
+ if (standardRnDirFile.exists()) {
93
+ return standardRnDirFile
94
+ }
95
+
96
+ // 3. Legacy location
97
+ def legacyRnDirFile = file("$projectDir/../node_modules/react-native/")
98
+ if (legacyRnDirFile.exists()) {
99
+ return legacyRnDirFile
100
+ }
101
+
102
+ // 4. Try Node resolution as fallback
103
+ try {
104
+ def maybeRnPackagePath = providers.exec {
105
+ workingDir(rootDir)
106
+ commandLine("node", "--print", "require.resolve('react-native/package.json')")
107
+ }.standardOutput.asText.get().trim()
108
+
109
+ if (maybeRnPackagePath != null && !maybeRnPackagePath.isBlank()) {
110
+ def maybeRnPackageFile = file(maybeRnPackagePath)
111
+ if (maybeRnPackageFile.exists()) {
112
+ return maybeRnPackageFile.parentFile
113
+ }
114
+ }
115
+ } catch (Exception e) {
116
+ logger.debug("@rnmapbox/maps: Node resolution for react-native failed: ${e.message}")
117
+ }
118
+
119
+ return null
120
+ }
121
+
122
+ def detectReactNativeVersion = {
123
+ def rnDir = resolveReactNativeDirectory()
124
+ if (rnDir == null) {
125
+ return null
126
+ }
127
+
128
+ // Try gradle.properties first (like react-native-screens)
129
+ def gradlePropertiesFile = file("$rnDir/ReactAndroid/gradle.properties")
130
+ if (gradlePropertiesFile.exists()) {
131
+ try {
132
+ def reactProperties = new Properties()
133
+ gradlePropertiesFile.withInputStream { reactProperties.load(it) }
134
+ def version = reactProperties.getProperty("VERSION_NAME")
135
+ if (version != null) {
136
+ return version
137
+ }
138
+ } catch (Exception e) {
139
+ logger.debug("@rnmapbox/maps: Failed to read gradle.properties: ${e.message}")
140
+ }
141
+ }
142
+
143
+ // Fallback to package.json
144
+ def packageJsonFile = file("$rnDir/package.json")
145
+ if (packageJsonFile.exists()) {
146
+ try {
147
+ def packageJson = new groovy.json.JsonSlurper().parseText(packageJsonFile.text)
148
+ return packageJson.version
149
+ } catch (Exception e) {
150
+ logger.debug("@rnmapbox/maps: Failed to read package.json: ${e.message}")
151
+ }
152
+ }
153
+
154
+ return null
155
+ }
156
+
81
157
  // Add lifecycle compatibility source sets
82
- // Apps targeting SDK 35+ typically use Lifecycle 2.6+ which changed from getLifecycle() to lifecycle property
83
- def targetSdk = safeExtGet("targetSdkVersion", 28)
84
- if (targetSdk >= 35) {
158
+ // Priority order:
159
+ // 1. User-defined override (RNMapboxMapsLifecycleCompat)
160
+ // 2. React Native version detection (0.78+ uses new API)
161
+ // 3. Conservative default (v25 for better compatibility)
162
+
163
+ def lifecycleCompat = safeExtGet("RNMapboxMapsLifecycleCompat", null)
164
+
165
+ if (lifecycleCompat == "v25" || lifecycleCompat == "old") {
166
+ logger.info("@rnmapbox/maps: Using v25 lifecycle compatibility (ViewTreeLifecycleOwner.set) - user override")
167
+ java.srcDirs += 'src/main/lifecycle-compat/v25'
168
+ } else if (lifecycleCompat == "v26" || lifecycleCompat == "new") {
169
+ logger.info("@rnmapbox/maps: Using v26 lifecycle compatibility (setViewTreeLifecycleOwner) - user override")
85
170
  java.srcDirs += 'src/main/lifecycle-compat/v26'
86
171
  } else {
87
- java.srcDirs += 'src/main/lifecycle-compat/v25'
172
+ // Auto-detect based on React Native version
173
+ def rnVersion = null
174
+ try {
175
+ rnVersion = detectReactNativeVersion()
176
+ } catch (Exception e) {
177
+ logger.debug("@rnmapbox/maps: Failed to detect React Native version: ${e.message}")
178
+ }
179
+
180
+ if (rnVersion != null) {
181
+ try {
182
+ def versionParts = rnVersion.split("\\.")
183
+ def majorVersion = versionParts[0].toInteger()
184
+ def minorVersion = versionParts[1].toInteger()
185
+
186
+ // React Native < 0.78 needs the old lifecycle API
187
+ if (majorVersion == 0 && minorVersion < 78) {
188
+ logger.info("@rnmapbox/maps: Detected React Native ${rnVersion} - using v25 lifecycle compatibility (old API)")
189
+ java.srcDirs += 'src/main/lifecycle-compat/v25'
190
+ } else {
191
+ logger.info("@rnmapbox/maps: Detected React Native ${rnVersion} - using v26 lifecycle compatibility (new API)")
192
+ java.srcDirs += 'src/main/lifecycle-compat/v26'
193
+ }
194
+ } catch (Exception e) {
195
+ logger.warn("@rnmapbox/maps: Failed to parse React Native version '${rnVersion}', defaulting to v26 compatibility")
196
+ java.srcDirs += 'src/main/lifecycle-compat/v26'
197
+ }
198
+ } else {
199
+ // Cannot detect RN version, default to new API (v26) for future compatibility
200
+ def targetSdk = safeExtGet("targetSdkVersion", 28)
201
+ logger.info("@rnmapbox/maps: Unable to detect React Native version, using v26 lifecycle compatibility (new API, targetSdk=${targetSdk})")
202
+ logger.info("@rnmapbox/maps: If you encounter issues with RN < 0.78, set RNMapboxMapsLifecycleCompat='v25' in your app's android/build.gradle ext block")
203
+ java.srcDirs += 'src/main/lifecycle-compat/v26'
204
+ }
88
205
  }
89
206
 
90
207
  if (safeExtGet("RNMapboxMapsUseV11", false)) {
@@ -11,8 +11,8 @@ class RNMBXLocation: NSObject {
11
11
 
12
12
  var timestamp: Date? = nil
13
13
 
14
- func toJSON() -> [String:Any?] {
15
- var coords: [String:Any?] = [:]
14
+ func toJSON() -> [String:Any] {
15
+ var coords: [String:Any] = [:]
16
16
 
17
17
  if let location = location {
18
18
  coords = coords.merging([
@@ -251,11 +251,11 @@ class RNMBXLocationModule: RCTEventEmitter {
251
251
  throttler.cancel()
252
252
  }
253
253
 
254
- @objc func getLastKnownLocation() -> RNMBXLocation? {
254
+ @objc func getLastKnownLocation() -> [String: Any]? {
255
255
  let last = RNMBXLocation()
256
256
  last.heading = _locationProvider.latestHeading
257
257
  last.location = _locationProvider.getLastObservedLocation()
258
- return last
258
+ return last.toJSON()
259
259
  }
260
260
 
261
261
  @objc
@@ -68,7 +68,18 @@ function cloneReactChildrenWithProps(children, propsToAdd = {}) {
68
68
  foundChildren = children;
69
69
  }
70
70
  const filteredChildren = foundChildren.filter(child => !!child); // filter out falsy children, since some can be null
71
- return _react.default.Children.map(filteredChildren, child => /*#__PURE__*/_react.default.cloneElement(child, propsToAdd));
71
+ return _react.default.Children.map(filteredChildren, child => {
72
+ if (! /*#__PURE__*/_react.default.isValidElement(child)) {
73
+ return child;
74
+ }
75
+ if (child.type === _react.default.Fragment) {
76
+ // If the child is a Fragment, return it without adding props
77
+ return child;
78
+ }
79
+
80
+ // Otherwise, clone and add props
81
+ return /*#__PURE__*/_react.default.cloneElement(child, propsToAdd);
82
+ });
72
83
  }
73
84
  function resolveImagePath(imageRef) {
74
85
  const res = _reactNative.Image.resolveAssetSource(imageRef);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","isAndroid","Platform","OS","existenceChange","cur","next","isFunction","fn","isNumber","num","Number","isNaN","isUndefined","obj","isString","str","isBoolean","bool","isPrimitive","value","runNativeMethod","turboModule","name","nativeRef","args","handle","findNodeHandle","Error","module","cloneReactChildrenWithProps","children","propsToAdd","foundChildren","Array","isArray","filteredChildren","filter","child","React","Children","map","cloneElement","resolveImagePath","imageRef","res","Image","resolveAssetSource","uri","toJSONString","json","JSON","stringify"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAMsB,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AARtB;;AAUO,SAASG,SAASA,CAAA,EAAY;EACnC,OAAOC,qBAAQ,CAACC,EAAE,KAAK,SAAS;AAClC;AAEO,SAASC,eAAeA,CAACC,GAAY,EAAEC,IAAa,EAAW;EACpE,IAAI,CAACD,GAAG,IAAI,CAACC,IAAI,EAAE;IACjB,OAAO,KAAK;EACd;EACA,OAAQ,CAACD,GAAG,IAAIC,IAAI,IAAMD,GAAG,IAAI,CAACC,IAAK;AACzC;AAEO,SAASC,UAAUA,CAACC,EAAW,EAAiB;EACrD,OAAO,OAAOA,EAAE,KAAK,UAAU;AACjC;AAEO,SAASC,QAAQA,CAACC,GAAY,EAAiB;EACpD,OAAO,OAAOA,GAAG,KAAK,QAAQ,IAAI,CAACC,MAAM,CAACC,KAAK,CAACF,GAAG,CAAC;AACtD;AAEO,SAASG,WAAWA,CAACC,GAAY,EAAoB;EAC1D,OAAO,OAAOA,GAAG,KAAK,WAAW;AACnC;AAEO,SAASC,QAAQA,CAACC,GAAY,EAAiB;EACpD,OAAO,OAAOA,GAAG,KAAK,QAAQ;AAChC;AAEO,SAASC,SAASA,CAACC,IAAa,EAAmB;EACxD,OAAO,OAAOA,IAAI,KAAK,SAAS;AAClC;AAEO,SAASC,WAAWA,CACzBC,KAAc,EACsB;EACpC,OAAOL,QAAQ,CAACK,KAAK,CAAC,IAAIX,QAAQ,CAACW,KAAK,CAAC,IAAIH,SAAS,CAACG,KAAK,CAAC;AAC/D;AAUO,SAASC,eAAeA,CAC7BC,WAAwB,EACxBC,IAAY,EACZC,SAAc,EACdC,IAAiB,EACI;EACrB,MAAMC,MAAM,GAAG,IAAAC,2BAAc,EAACH,SAAS,CAAC;EACxC,IAAI,CAACE,MAAM,EAAE;IACX,MAAM,IAAIE,KAAK,CAAC,wCAAwCC,MAAM,IAAIN,IAAI,EAAE,CAAC;EAC3E;;EAEA;EACA;EACA,OAAOD,WAAW,CAACC,IAAI,CAAC,CAACG,MAAM,EAAE,GAAGD,IAAI,CAAC;AAC3C;AAEO,SAASK,2BAA2BA,CACzCC,QAAkD,EAClDC,UAAqC,GAAG,CAAC,CAAC,EAC1C;EACA,IAAI,CAACD,QAAQ,EAAE;IACb,OAAO,IAAI;EACb;EAEA,IAAIE,aAAa,GAAG,IAAI;EAExB,IAAI,CAACC,KAAK,CAACC,OAAO,CAACJ,QAAQ,CAAC,EAAE;IAC5BE,aAAa,GAAG,CAACF,QAAQ,CAAC;EAC5B,CAAC,MAAM;IACLE,aAAa,GAAGF,QAAQ;EAC1B;EAEA,MAAMK,gBAAgB,GAAGH,aAAa,CAACI,MAAM,CAAEC,KAAK,IAAK,CAAC,CAACA,KAAK,CAAC,CAAC,CAAC;EACnE,OAAOC,cAAK,CAACC,QAAQ,CAACC,GAAG,CAACL,gBAAgB,EAAGE,KAAK,iBAChDC,cAAK,CAACG,YAAY,CAACJ,KAAK,EAAEN,UAAU,CACtC,CAAC;AACH;AAEO,SAASW,gBAAgBA,CAACC,QAA6B,EAAU;EACtE,MAAMC,GAAG,GAAGC,kBAAK,CAACC,kBAAkB,CAACH,QAAQ,CAAC;EAC9C,OAAOC,GAAG,CAACG,GAAG;AAChB;AAEO,SAASC,YAAYA,CAACC,IAAS,GAAG,EAAE,EAAE;EAC3C,OAAOC,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC;AAC7B","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","isAndroid","Platform","OS","existenceChange","cur","next","isFunction","fn","isNumber","num","Number","isNaN","isUndefined","obj","isString","str","isBoolean","bool","isPrimitive","value","runNativeMethod","turboModule","name","nativeRef","args","handle","findNodeHandle","Error","module","cloneReactChildrenWithProps","children","propsToAdd","foundChildren","Array","isArray","filteredChildren","filter","child","React","Children","map","isValidElement","type","Fragment","cloneElement","resolveImagePath","imageRef","res","Image","resolveAssetSource","uri","toJSONString","json","JSON","stringify"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"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","ignoreList":[]}
@@ -51,7 +51,18 @@ export function cloneReactChildrenWithProps(children, propsToAdd = {}) {
51
51
  foundChildren = children;
52
52
  }
53
53
  const filteredChildren = foundChildren.filter(child => !!child); // filter out falsy children, since some can be null
54
- return React.Children.map(filteredChildren, child => /*#__PURE__*/React.cloneElement(child, propsToAdd));
54
+ return React.Children.map(filteredChildren, child => {
55
+ if (! /*#__PURE__*/React.isValidElement(child)) {
56
+ return child;
57
+ }
58
+ if (child.type === React.Fragment) {
59
+ // If the child is a Fragment, return it without adding props
60
+ return child;
61
+ }
62
+
63
+ // Otherwise, clone and add props
64
+ return /*#__PURE__*/React.cloneElement(child, propsToAdd);
65
+ });
55
66
  }
56
67
  export function resolveImagePath(imageRef) {
57
68
  const res = Image.resolveAssetSource(imageRef);
@@ -1 +1 @@
1
- {"version":3,"names":["React","findNodeHandle","Platform","Image","isAndroid","OS","existenceChange","cur","next","isFunction","fn","isNumber","num","Number","isNaN","isUndefined","obj","isString","str","isBoolean","bool","isPrimitive","value","runNativeMethod","turboModule","name","nativeRef","args","handle","Error","module","cloneReactChildrenWithProps","children","propsToAdd","foundChildren","Array","isArray","filteredChildren","filter","child","Children","map","cloneElement","resolveImagePath","imageRef","res","resolveAssetSource","uri","toJSONString","json","JSON","stringify"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;AAAA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,cAAc,EACdC,QAAQ,EACRC,KAAK,QAGA,cAAc;AAErB,OAAO,SAASC,SAASA,CAAA,EAAY;EACnC,OAAOF,QAAQ,CAACG,EAAE,KAAK,SAAS;AAClC;AAEA,OAAO,SAASC,eAAeA,CAACC,GAAY,EAAEC,IAAa,EAAW;EACpE,IAAI,CAACD,GAAG,IAAI,CAACC,IAAI,EAAE;IACjB,OAAO,KAAK;EACd;EACA,OAAQ,CAACD,GAAG,IAAIC,IAAI,IAAMD,GAAG,IAAI,CAACC,IAAK;AACzC;AAEA,OAAO,SAASC,UAAUA,CAACC,EAAW,EAAiB;EACrD,OAAO,OAAOA,EAAE,KAAK,UAAU;AACjC;AAEA,OAAO,SAASC,QAAQA,CAACC,GAAY,EAAiB;EACpD,OAAO,OAAOA,GAAG,KAAK,QAAQ,IAAI,CAACC,MAAM,CAACC,KAAK,CAACF,GAAG,CAAC;AACtD;AAEA,OAAO,SAASG,WAAWA,CAACC,GAAY,EAAoB;EAC1D,OAAO,OAAOA,GAAG,KAAK,WAAW;AACnC;AAEA,OAAO,SAASC,QAAQA,CAACC,GAAY,EAAiB;EACpD,OAAO,OAAOA,GAAG,KAAK,QAAQ;AAChC;AAEA,OAAO,SAASC,SAASA,CAACC,IAAa,EAAmB;EACxD,OAAO,OAAOA,IAAI,KAAK,SAAS;AAClC;AAEA,OAAO,SAASC,WAAWA,CACzBC,KAAc,EACsB;EACpC,OAAOL,QAAQ,CAACK,KAAK,CAAC,IAAIX,QAAQ,CAACW,KAAK,CAAC,IAAIH,SAAS,CAACG,KAAK,CAAC;AAC/D;AAUA,OAAO,SAASC,eAAeA,CAC7BC,WAAwB,EACxBC,IAAY,EACZC,SAAc,EACdC,IAAiB,EACI;EACrB,MAAMC,MAAM,GAAG3B,cAAc,CAACyB,SAAS,CAAC;EACxC,IAAI,CAACE,MAAM,EAAE;IACX,MAAM,IAAIC,KAAK,CAAC,wCAAwCC,MAAM,IAAIL,IAAI,EAAE,CAAC;EAC3E;;EAEA;EACA;EACA,OAAOD,WAAW,CAACC,IAAI,CAAC,CAACG,MAAM,EAAE,GAAGD,IAAI,CAAC;AAC3C;AAEA,OAAO,SAASI,2BAA2BA,CACzCC,QAAkD,EAClDC,UAAqC,GAAG,CAAC,CAAC,EAC1C;EACA,IAAI,CAACD,QAAQ,EAAE;IACb,OAAO,IAAI;EACb;EAEA,IAAIE,aAAa,GAAG,IAAI;EAExB,IAAI,CAACC,KAAK,CAACC,OAAO,CAACJ,QAAQ,CAAC,EAAE;IAC5BE,aAAa,GAAG,CAACF,QAAQ,CAAC;EAC5B,CAAC,MAAM;IACLE,aAAa,GAAGF,QAAQ;EAC1B;EAEA,MAAMK,gBAAgB,GAAGH,aAAa,CAACI,MAAM,CAAEC,KAAK,IAAK,CAAC,CAACA,KAAK,CAAC,CAAC,CAAC;EACnE,OAAOvC,KAAK,CAACwC,QAAQ,CAACC,GAAG,CAACJ,gBAAgB,EAAGE,KAAK,iBAChDvC,KAAK,CAAC0C,YAAY,CAACH,KAAK,EAAEN,UAAU,CACtC,CAAC;AACH;AAEA,OAAO,SAASU,gBAAgBA,CAACC,QAA6B,EAAU;EACtE,MAAMC,GAAG,GAAG1C,KAAK,CAAC2C,kBAAkB,CAACF,QAAQ,CAAC;EAC9C,OAAOC,GAAG,CAACE,GAAG;AAChB;AAEA,OAAO,SAASC,YAAYA,CAACC,IAAS,GAAG,EAAE,EAAE;EAC3C,OAAOC,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC;AAC7B","ignoreList":[]}
1
+ {"version":3,"names":["React","findNodeHandle","Platform","Image","isAndroid","OS","existenceChange","cur","next","isFunction","fn","isNumber","num","Number","isNaN","isUndefined","obj","isString","str","isBoolean","bool","isPrimitive","value","runNativeMethod","turboModule","name","nativeRef","args","handle","Error","module","cloneReactChildrenWithProps","children","propsToAdd","foundChildren","Array","isArray","filteredChildren","filter","child","Children","map","isValidElement","type","Fragment","cloneElement","resolveImagePath","imageRef","res","resolveAssetSource","uri","toJSONString","json","JSON","stringify"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  import { ImageSourcePropType, TurboModule } from 'react-native';
3
3
  export declare function isAndroid(): boolean;
4
4
  export declare function existenceChange(cur: boolean, next: boolean): boolean;
@@ -12,9 +12,9 @@ export type NativeArg = string | number | boolean | null | {
12
12
  [k: string]: NativeArg;
13
13
  } | NativeArg[];
14
14
  export declare function runNativeMethod<ReturnType = NativeArg>(turboModule: TurboModule, name: string, nativeRef: any, args: NativeArg[]): Promise<ReturnType>;
15
- export declare function cloneReactChildrenWithProps(children: Parameters<typeof React.Children.map>[0], propsToAdd?: {
15
+ export declare function cloneReactChildrenWithProps(children: ReactNode, propsToAdd?: {
16
16
  [key: string]: string;
17
- }): any;
17
+ }): (string | number | bigint | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined>)[] | null;
18
18
  export declare function resolveImagePath(imageRef: ImageSourcePropType): string;
19
19
  export declare function toJSONString(json?: any): string;
20
20
  export type OrnamentPositonProp = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,mBAAmB,EACnB,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAKpE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,OAAO,CAErD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,CAE1D;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,OAAO,CAExD;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO,CAEpC;AAED,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1B,SAAS,EAAE,CAAC;AAEhB,wBAAgB,eAAe,CAAC,UAAU,GAAG,SAAS,EACpD,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,GAAG,EACd,IAAI,EAAE,SAAS,EAAE,GAChB,OAAO,CAAC,UAAU,CAAC,CASrB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAClD,UAAU,GAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,OAkB3C;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAGtE;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,GAAQ,UAE1C;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAIL,mBAAmB,EACnB,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAKpE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,OAAO,CAErD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,CAE1D;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,OAAO,CAExD;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO,CAEpC;AAED,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1B,SAAS,EAAE,CAAC;AAEhB,wBAAgB,eAAe,CAAC,UAAU,GAAG,SAAS,EACpD,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,GAAG,EACd,IAAI,EAAE,SAAS,EAAE,GAChB,OAAO,CAAC,UAAU,CAAC,CASrB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,SAAS,EACnB,UAAU,GAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,sUA4B3C;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAGtE;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,GAAQ,UAE1C;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rnmapbox/maps",
3
3
  "description": "A Mapbox react native module for creating custom maps",
4
- "version": "10.1.41-rc.2",
4
+ "version": "10.1.41-rc.3",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import React from 'react';
2
+ import React, { ReactNode } from 'react';
3
3
  import {
4
4
  findNodeHandle,
5
5
  Platform,
@@ -70,14 +70,14 @@ export function runNativeMethod<ReturnType = NativeArg>(
70
70
  }
71
71
 
72
72
  export function cloneReactChildrenWithProps(
73
- children: Parameters<typeof React.Children.map>[0],
73
+ children: ReactNode,
74
74
  propsToAdd: { [key: string]: string } = {},
75
75
  ) {
76
76
  if (!children) {
77
77
  return null;
78
78
  }
79
79
 
80
- let foundChildren = null;
80
+ let foundChildren: typeof children[] | null = null;
81
81
 
82
82
  if (!Array.isArray(children)) {
83
83
  foundChildren = [children];
@@ -86,9 +86,19 @@ export function cloneReactChildrenWithProps(
86
86
  }
87
87
 
88
88
  const filteredChildren = foundChildren.filter((child) => !!child); // filter out falsy children, since some can be null
89
- return React.Children.map(filteredChildren, (child) =>
90
- React.cloneElement(child, propsToAdd),
91
- );
89
+ return React.Children.map(filteredChildren, (child) => {
90
+ if (!React.isValidElement(child)) {
91
+ return child;
92
+ }
93
+
94
+ if (child.type === React.Fragment) {
95
+ // If the child is a Fragment, return it without adding props
96
+ return child;
97
+ }
98
+
99
+ // Otherwise, clone and add props
100
+ return React.cloneElement(child, propsToAdd);
101
+ });
92
102
  }
93
103
 
94
104
  export function resolveImagePath(imageRef: ImageSourcePropType): string {