react-native 0.84.0-nightly-20251211-80e384a80 → 0.84.0-nightly-20251212-dd390dbbe
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/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +97 -2
- package/React/Base/RCTVersion.m +1 -1
- package/React/Modules/RCTEventEmitter.m +1 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +15 -8
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +34 -8
- package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +1 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +16 -0
- package/package.json +8 -8
|
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
|
|
|
29
29
|
static major: number = 0;
|
|
30
30
|
static minor: number = 84;
|
|
31
31
|
static patch: number = 0;
|
|
32
|
-
static prerelease: string | null = 'nightly-
|
|
32
|
+
static prerelease: string | null = 'nightly-20251212-dd390dbbe';
|
|
33
33
|
|
|
34
34
|
static getVersionString(): string {
|
|
35
35
|
return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
|
|
@@ -367,7 +367,7 @@ export type BlendMode =
|
|
|
367
367
|
| 'color'
|
|
368
368
|
| 'luminosity';
|
|
369
369
|
|
|
370
|
-
export type
|
|
370
|
+
export type LinearGradientValue = {
|
|
371
371
|
type: 'linear-gradient';
|
|
372
372
|
// Angle or direction enums
|
|
373
373
|
direction?: string | undefined;
|
|
@@ -377,6 +377,89 @@ export type GradientValue = {
|
|
|
377
377
|
}>;
|
|
378
378
|
};
|
|
379
379
|
|
|
380
|
+
export type GradientValue = LinearGradientValue;
|
|
381
|
+
|
|
382
|
+
type RadialExtent =
|
|
383
|
+
| 'closest-corner'
|
|
384
|
+
| 'closest-side'
|
|
385
|
+
| 'farthest-corner'
|
|
386
|
+
| 'farthest-side';
|
|
387
|
+
export type RadialGradientPosition =
|
|
388
|
+
| {
|
|
389
|
+
top: number | string;
|
|
390
|
+
left: number | string;
|
|
391
|
+
}
|
|
392
|
+
| {
|
|
393
|
+
top: number | string;
|
|
394
|
+
right: number | string;
|
|
395
|
+
}
|
|
396
|
+
| {
|
|
397
|
+
bottom: number | string;
|
|
398
|
+
left: number | string;
|
|
399
|
+
}
|
|
400
|
+
| {
|
|
401
|
+
bottom: number | string;
|
|
402
|
+
right: number | string;
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
export type RadialGradientShape = 'circle' | 'ellipse';
|
|
406
|
+
export type RadialGradientSize =
|
|
407
|
+
| RadialExtent
|
|
408
|
+
| {
|
|
409
|
+
x: string | number;
|
|
410
|
+
y: string | number;
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
type RadialGradientValue = {
|
|
414
|
+
type: 'radial-gradient';
|
|
415
|
+
shape: RadialGradientShape;
|
|
416
|
+
size: RadialGradientSize;
|
|
417
|
+
position: RadialGradientPosition;
|
|
418
|
+
colorStops: ReadonlyArray<{
|
|
419
|
+
color: ColorValue | null;
|
|
420
|
+
positions?: ReadonlyArray<string> | undefined;
|
|
421
|
+
}>;
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
export type BackgroundImageValue = LinearGradientValue | RadialGradientValue;
|
|
425
|
+
|
|
426
|
+
export type BackgroundSizeValue =
|
|
427
|
+
| {
|
|
428
|
+
x: string | number;
|
|
429
|
+
y: string | number;
|
|
430
|
+
}
|
|
431
|
+
| 'cover'
|
|
432
|
+
| 'contain';
|
|
433
|
+
|
|
434
|
+
export type BackgroundRepeatKeyword =
|
|
435
|
+
| 'repeat'
|
|
436
|
+
| 'space'
|
|
437
|
+
| 'round'
|
|
438
|
+
| 'no-repeat';
|
|
439
|
+
|
|
440
|
+
export type BackgroundPositionValue =
|
|
441
|
+
| {
|
|
442
|
+
top: number | string;
|
|
443
|
+
left: number | string;
|
|
444
|
+
}
|
|
445
|
+
| {
|
|
446
|
+
top: number | string;
|
|
447
|
+
right: number | string;
|
|
448
|
+
}
|
|
449
|
+
| {
|
|
450
|
+
bottom: number | string;
|
|
451
|
+
left: number | string;
|
|
452
|
+
}
|
|
453
|
+
| {
|
|
454
|
+
bottom: number | string;
|
|
455
|
+
right: number | string;
|
|
456
|
+
};
|
|
457
|
+
|
|
458
|
+
export type BackgroundRepeatValue = {
|
|
459
|
+
x: BackgroundRepeatKeyword;
|
|
460
|
+
y: BackgroundRepeatKeyword;
|
|
461
|
+
};
|
|
462
|
+
|
|
380
463
|
/**
|
|
381
464
|
* @see https://reactnative.dev/docs/view#style
|
|
382
465
|
*/
|
|
@@ -437,7 +520,19 @@ export interface ViewStyle extends FlexStyle, ShadowStyleIOS, TransformsStyle {
|
|
|
437
520
|
|
|
438
521
|
mixBlendMode?: BlendMode | undefined;
|
|
439
522
|
experimental_backgroundImage?:
|
|
440
|
-
| ReadonlyArray<
|
|
523
|
+
| ReadonlyArray<BackgroundImageValue>
|
|
524
|
+
| string
|
|
525
|
+
| undefined;
|
|
526
|
+
experimental_backgroundSize?:
|
|
527
|
+
| ReadonlyArray<BackgroundSizeValue>
|
|
528
|
+
| string
|
|
529
|
+
| undefined;
|
|
530
|
+
experimental_backgroundPosition?:
|
|
531
|
+
| ReadonlyArray<BackgroundPositionValue>
|
|
532
|
+
| string
|
|
533
|
+
| undefined;
|
|
534
|
+
experimental_backgroundRepeat?:
|
|
535
|
+
| ReadonlyArray<BackgroundRepeatValue>
|
|
441
536
|
| string
|
|
442
537
|
| undefined;
|
|
443
538
|
}
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
|
|
24
24
|
RCTVersionMajor: @(0),
|
|
25
25
|
RCTVersionMinor: @(84),
|
|
26
26
|
RCTVersionPatch: @(0),
|
|
27
|
-
RCTVersionPrerelease: @"nightly-
|
|
27
|
+
RCTVersionPrerelease: @"nightly-20251212-dd390dbbe",
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
return __rnVersion;
|
|
@@ -19,15 +19,16 @@ public open class PackagerConnectionSettings(private val appContext: Context) {
|
|
|
19
19
|
private val preferences: SharedPreferences =
|
|
20
20
|
PreferenceManager.getDefaultSharedPreferences(appContext)
|
|
21
21
|
public val packageName: String = appContext.packageName
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
|
|
23
|
+
init {
|
|
24
|
+
resetDebugServerHost()
|
|
25
|
+
}
|
|
25
26
|
|
|
26
27
|
public open var debugServerHost: String
|
|
27
28
|
get() {
|
|
28
29
|
// Check cached host first. If empty try to detect emulator type and use default
|
|
29
30
|
// hostname for those
|
|
30
|
-
|
|
31
|
+
_cachedOrOverrideHost?.let {
|
|
31
32
|
return it
|
|
32
33
|
}
|
|
33
34
|
|
|
@@ -44,19 +45,19 @@ public open class PackagerConnectionSettings(private val appContext: Context) {
|
|
|
44
45
|
)
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
_cachedOrOverrideHost = host
|
|
48
49
|
return host
|
|
49
50
|
}
|
|
50
51
|
set(host) {
|
|
51
52
|
if (host.isEmpty()) {
|
|
52
|
-
|
|
53
|
+
_cachedOrOverrideHost = null
|
|
53
54
|
} else {
|
|
54
|
-
|
|
55
|
+
_cachedOrOverrideHost = host
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
public open fun resetDebugServerHost() {
|
|
59
|
-
|
|
60
|
+
_cachedOrOverrideHost = null
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
public fun setPackagerOptionsUpdater(queryMapper: (Map<String, String>) -> Map<String, String>) {
|
|
@@ -76,5 +77,11 @@ public open class PackagerConnectionSettings(private val appContext: Context) {
|
|
|
76
77
|
private companion object {
|
|
77
78
|
private val TAG = PackagerConnectionSettings::class.java.simpleName
|
|
78
79
|
private const val PREFS_DEBUG_SERVER_HOST_KEY = "debug_http_host"
|
|
80
|
+
|
|
81
|
+
// The state for this class needs to be retained in the companion object.
|
|
82
|
+
// That's necessary in the case when there are multiple instances of PackagerConnectionSettings
|
|
83
|
+
private var _cachedOrOverrideHost: String? = null
|
|
84
|
+
private val _additionalOptionsForPackager: MutableMap<String, String> = mutableMapOf()
|
|
85
|
+
private var _packagerOptionsUpdater: (Map<String, String>) -> Map<String, String> = { it }
|
|
79
86
|
}
|
|
80
87
|
}
|
|
@@ -176,11 +176,24 @@ std::shared_ptr<TurboModule> TurboModuleManager::getTurboModule(
|
|
|
176
176
|
return turboModule;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
+
// TODO(T248203434): Remove this workaround once fixed in fbjni
|
|
180
|
+
// NOTE: We use jstring instead of std::string for the method signature to
|
|
181
|
+
// work around a bug in fbjni's exception handling. When a Java method throws
|
|
182
|
+
// an exception, fbjni's JMethod::operator() needs to check for pending
|
|
183
|
+
// exceptions via FACEBOOK_JNI_THROW_PENDING_EXCEPTION(). However, if we pass
|
|
184
|
+
// std::string, fbjni creates a temporary local_ref<JString> for the argument.
|
|
185
|
+
// C++ destroys temporaries at the end of the full-expression, which happens
|
|
186
|
+
// AFTER the JNI call returns but BEFORE the exception check. The destructor
|
|
187
|
+
// calls JNI functions (GetObjectRefType) while there's a pending exception,
|
|
188
|
+
// which violates JNI rules and causes ART's CheckJNI to abort the process.
|
|
189
|
+
//
|
|
190
|
+
// By pre-converting to jstring here, we control the lifetime of the
|
|
191
|
+
// local_ref<JString> so it extends past the exception check.
|
|
179
192
|
static auto getTurboJavaModule =
|
|
180
|
-
javaPart->getClass()
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
auto moduleInstance = getTurboJavaModule(javaPart.get(),
|
|
193
|
+
javaPart->getClass()->getMethod<jni::alias_ref<JTurboModule>(jstring)>(
|
|
194
|
+
"getTurboJavaModule");
|
|
195
|
+
auto jname = jni::make_jstring(name);
|
|
196
|
+
auto moduleInstance = getTurboJavaModule(javaPart.get(), jname.get());
|
|
184
197
|
if (moduleInstance) {
|
|
185
198
|
TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
|
|
186
199
|
JavaTurboModule::InitParams params = {
|
|
@@ -243,11 +256,24 @@ std::shared_ptr<TurboModule> TurboModuleManager::getLegacyModule(
|
|
|
243
256
|
|
|
244
257
|
TurboModulePerfLogger::moduleJSRequireBeginningEnd(moduleName);
|
|
245
258
|
|
|
259
|
+
// TODO(T248203434): Remove this workaround once fixed in fbjni
|
|
260
|
+
// NOTE: We use jstring instead of std::string for the method signature to
|
|
261
|
+
// work around a bug in fbjni's exception handling. When a Java method throws
|
|
262
|
+
// an exception, fbjni's JMethod::operator() needs to check for pending
|
|
263
|
+
// exceptions via FACEBOOK_JNI_THROW_PENDING_EXCEPTION(). However, if we pass
|
|
264
|
+
// std::string, fbjni creates a temporary local_ref<JString> for the argument.
|
|
265
|
+
// C++ destroys temporaries at the end of the full-expression, which happens
|
|
266
|
+
// AFTER the JNI call returns but BEFORE the exception check. The destructor
|
|
267
|
+
// calls JNI functions (GetObjectRefType) while there's a pending exception,
|
|
268
|
+
// which violates JNI rules and causes ART's CheckJNI to abort the process.
|
|
269
|
+
//
|
|
270
|
+
// By pre-converting to jstring here, we control the lifetime of the
|
|
271
|
+
// local_ref<JString> so it extends past the exception check.
|
|
246
272
|
static auto getLegacyJavaModule =
|
|
247
|
-
javaPart->getClass()
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
auto moduleInstance = getLegacyJavaModule(javaPart.get(),
|
|
273
|
+
javaPart->getClass()->getMethod<jni::alias_ref<JNativeModule>(jstring)>(
|
|
274
|
+
"getLegacyJavaModule");
|
|
275
|
+
auto jname = jni::make_jstring(name);
|
|
276
|
+
auto moduleInstance = getLegacyJavaModule(javaPart.get(), jname.get());
|
|
251
277
|
|
|
252
278
|
if (moduleInstance) {
|
|
253
279
|
TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
<string name="menubar_description" gender="unknown">मेनु बार</string>
|
|
13
13
|
<string name="menuitem_description" gender="unknown">मेनु वस्तु</string>
|
|
14
14
|
<string name="scrollbar_description" gender="unknown">स्क्रोल बार</string>
|
|
15
|
+
<string name="spinbutton_description" gender="unknown">स्पिन बटन</string>
|
|
15
16
|
<string name="rn_tab_description" gender="unknown">टयाब</string>
|
|
16
17
|
<string name="timer_description" gender="unknown">टाइमर</string>
|
|
17
18
|
<string name="state_busy_description" gender="unknown">व्यस्त</string>
|
|
@@ -22,7 +22,7 @@ constexpr struct {
|
|
|
22
22
|
int32_t Major = 0;
|
|
23
23
|
int32_t Minor = 84;
|
|
24
24
|
int32_t Patch = 0;
|
|
25
|
-
std::string_view Prerelease = "nightly-
|
|
25
|
+
std::string_view Prerelease = "nightly-20251212-dd390dbbe";
|
|
26
26
|
} ReactNativeVersion;
|
|
27
27
|
|
|
28
28
|
} // namespace facebook::react
|
|
@@ -77,6 +77,22 @@ inline void updateProp(const PropName propName, BaseViewProps &viewProps, const
|
|
|
77
77
|
case BACKGROUND_COLOR:
|
|
78
78
|
viewProps.backgroundColor = snapshot.props.backgroundColor;
|
|
79
79
|
break;
|
|
80
|
+
|
|
81
|
+
case SHADOW_COLOR:
|
|
82
|
+
viewProps.shadowColor = snapshot.props.shadowColor;
|
|
83
|
+
break;
|
|
84
|
+
|
|
85
|
+
case SHADOW_OFFSET:
|
|
86
|
+
viewProps.shadowOffset = snapshot.props.shadowOffset;
|
|
87
|
+
break;
|
|
88
|
+
|
|
89
|
+
case SHADOW_OPACITY:
|
|
90
|
+
viewProps.shadowOpacity = snapshot.props.shadowOpacity;
|
|
91
|
+
break;
|
|
92
|
+
|
|
93
|
+
case SHADOW_RADIUS:
|
|
94
|
+
viewProps.shadowRadius = snapshot.props.shadowRadius;
|
|
95
|
+
break;
|
|
80
96
|
}
|
|
81
97
|
}
|
|
82
98
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native",
|
|
3
|
-
"version": "0.84.0-nightly-
|
|
3
|
+
"version": "0.84.0-nightly-20251212-dd390dbbe",
|
|
4
4
|
"description": "A framework for building native apps using React",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -160,13 +160,13 @@
|
|
|
160
160
|
},
|
|
161
161
|
"dependencies": {
|
|
162
162
|
"@jest/create-cache-key-function": "^29.7.0",
|
|
163
|
-
"@react-native/assets-registry": "0.84.0-nightly-
|
|
164
|
-
"@react-native/codegen": "0.84.0-nightly-
|
|
165
|
-
"@react-native/community-cli-plugin": "0.84.0-nightly-
|
|
166
|
-
"@react-native/gradle-plugin": "0.84.0-nightly-
|
|
167
|
-
"@react-native/js-polyfills": "0.84.0-nightly-
|
|
168
|
-
"@react-native/normalize-colors": "0.84.0-nightly-
|
|
169
|
-
"@react-native/virtualized-lists": "0.84.0-nightly-
|
|
163
|
+
"@react-native/assets-registry": "0.84.0-nightly-20251212-dd390dbbe",
|
|
164
|
+
"@react-native/codegen": "0.84.0-nightly-20251212-dd390dbbe",
|
|
165
|
+
"@react-native/community-cli-plugin": "0.84.0-nightly-20251212-dd390dbbe",
|
|
166
|
+
"@react-native/gradle-plugin": "0.84.0-nightly-20251212-dd390dbbe",
|
|
167
|
+
"@react-native/js-polyfills": "0.84.0-nightly-20251212-dd390dbbe",
|
|
168
|
+
"@react-native/normalize-colors": "0.84.0-nightly-20251212-dd390dbbe",
|
|
169
|
+
"@react-native/virtualized-lists": "0.84.0-nightly-20251212-dd390dbbe",
|
|
170
170
|
"abort-controller": "^3.0.0",
|
|
171
171
|
"anser": "^1.4.9",
|
|
172
172
|
"ansi-regex": "^5.0.0",
|