@office-iss/react-native-win32 0.0.0-canary.258 → 0.0.0-canary.259
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/.flowconfig +2 -4
- package/CHANGELOG.json +16 -1
- package/CHANGELOG.md +16 -8
- package/Libraries/Alert/Alert.js +3 -0
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -0
- package/Libraries/Animated/useAnimatedProps.js +68 -3
- package/Libraries/BatchedBridge/NativeModules.js +2 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +3 -0
- package/Libraries/Components/TextInput/TextInput.js +204 -73
- package/Libraries/Components/TextInput/TextInput.win32.js +204 -79
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +11 -0
- package/Libraries/Core/ErrorHandlers.js +9 -0
- package/Libraries/Core/ExceptionsManager.js +2 -0
- package/Libraries/Core/ReactFiberErrorDialog.js +3 -0
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/setUpReactRefresh.js +0 -4
- package/Libraries/Image/ImageViewNativeComponent.js +1 -0
- package/Libraries/Interaction/TaskQueue.js +1 -0
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +1 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +3 -0
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +3 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +9 -2
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +46 -19
- package/Libraries/StyleSheet/StyleSheetTypes.js +48 -23
- package/Libraries/StyleSheet/processBoxShadow.js +211 -0
- package/Libraries/StyleSheet/processFilter.js +24 -14
- package/Libraries/Text/Text.js +394 -212
- package/Libraries/Text/Text.win32.js +442 -245
- package/Libraries/TurboModule/TurboModuleRegistry.js +13 -50
- package/Libraries/Types/CodegenTypes.js +3 -1
- package/Libraries/Utilities/HMRClient.js +1 -0
- package/Libraries/Utilities/Platform.android.js +1 -1
- package/Libraries/Utilities/Platform.d.ts +1 -1
- package/Libraries/Utilities/Platform.flow.js +2 -2
- package/Libraries/Utilities/Platform.flow.win32.js +3 -3
- package/Libraries/Utilities/Platform.ios.js +1 -1
- package/Libraries/Utilities/Platform.win32.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +1 -0
- package/jest/setup.js +8 -1
- package/overrides.json +9 -9
- package/package.json +12 -12
- package/src/private/featureflags/ReactNativeFeatureFlags.js +65 -18
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +11 -4
- package/src/private/specs/modules/NativeLinkingManager.js +1 -1
- package/src/private/specs/modules/NativePlatformConstantsAndroid.js +1 -1
- package/src/private/specs/modules/NativePlatformConstantsIOS.js +1 -1
- package/src/private/specs/modules/NativePlatformConstantsWin.js +8 -1
- package/src/private/webapis/performance/PerformanceEntry.js +1 -1
- package/src/private/webapis/performance/RawPerformanceEntry.js +5 -0
- package/types/experimental.d.ts +12 -1
- package/Libraries/Text/TextOptimized.js +0 -538
|
@@ -16,52 +16,25 @@ const NativeModules = require('../BatchedBridge/NativeModules');
|
|
|
16
16
|
|
|
17
17
|
const turboModuleProxy = global.__turboModuleProxy;
|
|
18
18
|
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
TurboModules: ([]: Array<string>),
|
|
22
|
-
NotFound: ([]: Array<string>),
|
|
23
|
-
};
|
|
19
|
+
const useLegacyNativeModuleInterop =
|
|
20
|
+
global.RN$Bridgeless !== true || global.RN$TurboInterop === true;
|
|
24
21
|
|
|
25
|
-
function isBridgeless() {
|
|
26
|
-
return global.RN$Bridgeless === true;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function isTurboModuleInteropEnabled() {
|
|
30
|
-
return global.RN$TurboInterop === true;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// TODO(154308585): Remove "module not found" debug info logging
|
|
34
|
-
function shouldReportDebugInfo() {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// TODO(148943970): Consider reversing the lookup here:
|
|
39
|
-
// Lookup on __turboModuleProxy, then lookup on nativeModuleProxy
|
|
40
22
|
function requireModule<T: TurboModule>(name: string): ?T {
|
|
41
|
-
if (!isBridgeless() || isTurboModuleInteropEnabled()) {
|
|
42
|
-
// Backward compatibility layer during migration.
|
|
43
|
-
const legacyModule = NativeModules[name];
|
|
44
|
-
if (legacyModule != null) {
|
|
45
|
-
if (shouldReportDebugInfo()) {
|
|
46
|
-
moduleLoadHistory.NativeModules.push(name);
|
|
47
|
-
}
|
|
48
|
-
return ((legacyModule: $FlowFixMe): T);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
23
|
if (turboModuleProxy != null) {
|
|
53
24
|
const module: ?T = turboModuleProxy(name);
|
|
54
25
|
if (module != null) {
|
|
55
|
-
if (shouldReportDebugInfo()) {
|
|
56
|
-
moduleLoadHistory.TurboModules.push(name);
|
|
57
|
-
}
|
|
58
26
|
return module;
|
|
59
27
|
}
|
|
60
28
|
}
|
|
61
29
|
|
|
62
|
-
if (
|
|
63
|
-
|
|
30
|
+
if (useLegacyNativeModuleInterop) {
|
|
31
|
+
// Backward compatibility layer during migration.
|
|
32
|
+
const legacyModule: ?T = NativeModules[name];
|
|
33
|
+
if (legacyModule != null) {
|
|
34
|
+
return legacyModule;
|
|
35
|
+
}
|
|
64
36
|
}
|
|
37
|
+
|
|
65
38
|
return null;
|
|
66
39
|
}
|
|
67
40
|
|
|
@@ -71,20 +44,10 @@ export function get<T: TurboModule>(name: string): ?T {
|
|
|
71
44
|
|
|
72
45
|
export function getEnforcing<T: TurboModule>(name: string): T {
|
|
73
46
|
const module = requireModule<T>(name);
|
|
74
|
-
|
|
47
|
+
invariant(
|
|
48
|
+
module != null,
|
|
75
49
|
`TurboModuleRegistry.getEnforcing(...): '${name}' could not be found. ` +
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (shouldReportDebugInfo()) {
|
|
79
|
-
message +=
|
|
80
|
-
' Bridgeless mode: ' + (isBridgeless() ? 'true' : 'false') + '. ';
|
|
81
|
-
message +=
|
|
82
|
-
'TurboModule interop: ' +
|
|
83
|
-
(isTurboModuleInteropEnabled() ? 'true' : 'false') +
|
|
84
|
-
'. ';
|
|
85
|
-
message += 'Modules loaded: ' + JSON.stringify(moduleLoadHistory);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
invariant(module != null, message);
|
|
50
|
+
'Verify that a module by this name is registered in the native binary.',
|
|
51
|
+
);
|
|
89
52
|
return module;
|
|
90
53
|
}
|
|
@@ -42,4 +42,6 @@ type DefaultTypes = number | boolean | string | $ReadOnlyArray<string>;
|
|
|
42
42
|
// eslint-disable-next-line no-unused-vars
|
|
43
43
|
export type WithDefault<Type: DefaultTypes, Value: ?Type | string> = ?Type;
|
|
44
44
|
|
|
45
|
-
export type EventEmitter<T> = (
|
|
45
|
+
export type EventEmitter<T> = (
|
|
46
|
+
handler: (T) => void | Promise<void>,
|
|
47
|
+
) => EventSubscription;
|
|
@@ -379,6 +379,7 @@ function showCompileError() {
|
|
|
379
379
|
|
|
380
380
|
/* $FlowFixMe[class-object-subtyping] added when improving typing for this
|
|
381
381
|
* parameters */
|
|
382
|
+
// $FlowFixMe[incompatible-type]
|
|
382
383
|
const error: ExtendedError = new Error(message);
|
|
383
384
|
// Symbolicating compile errors is wasted effort
|
|
384
385
|
// because the stack trace is meaningless:
|
|
@@ -32,7 +32,7 @@ type IOSPlatform = {
|
|
|
32
32
|
major: number,
|
|
33
33
|
minor: number,
|
|
34
34
|
patch: number,
|
|
35
|
-
prerelease: ?
|
|
35
|
+
prerelease: ?string,
|
|
36
36
|
|},
|
|
37
37
|
systemName: string,
|
|
38
38
|
isMacCatalyst?: boolean,
|
|
@@ -65,7 +65,7 @@ type AndroidPlatform = {
|
|
|
65
65
|
major: number,
|
|
66
66
|
minor: number,
|
|
67
67
|
patch: number,
|
|
68
|
-
prerelease: ?
|
|
68
|
+
prerelease: ?string,
|
|
69
69
|
|},
|
|
70
70
|
Version: number,
|
|
71
71
|
Release: string,
|
|
@@ -34,7 +34,7 @@ type IOSPlatform = {
|
|
|
34
34
|
major: number,
|
|
35
35
|
minor: number,
|
|
36
36
|
patch: number,
|
|
37
|
-
prerelease: ?string
|
|
37
|
+
prerelease: ?string,
|
|
38
38
|
|},
|
|
39
39
|
isMacCatalyst?: boolean,
|
|
40
40
|
|},
|
|
@@ -66,7 +66,7 @@ type AndroidPlatform = {
|
|
|
66
66
|
major: number,
|
|
67
67
|
minor: number,
|
|
68
68
|
patch: number,
|
|
69
|
-
prerelease: ?
|
|
69
|
+
prerelease: ?string,
|
|
70
70
|
|},
|
|
71
71
|
Version: number,
|
|
72
72
|
Release: string,
|
|
@@ -105,7 +105,7 @@ type Win32Platform = {
|
|
|
105
105
|
major: number,
|
|
106
106
|
minor: number,
|
|
107
107
|
patch: number,
|
|
108
|
-
prerelease: ?string
|
|
108
|
+
prerelease: ?string,
|
|
109
109
|
|},
|
|
110
110
|
systemName: string,
|
|
111
111
|
isMacCatalyst?: boolean,
|
|
@@ -113,6 +113,7 @@ export default class EventEmitter<TEventToArgsMap: {...}>
|
|
|
113
113
|
// Copy `registrations` to take a snapshot when we invoke `emit`, in case
|
|
114
114
|
// registrations are added or removed when listeners are invoked.
|
|
115
115
|
for (const registration of Array.from(registrations)) {
|
|
116
|
+
// $FlowFixMe[incompatible-call]
|
|
116
117
|
registration.listener.apply(registration.context, args);
|
|
117
118
|
}
|
|
118
119
|
}
|
package/jest/setup.js
CHANGED
|
@@ -287,7 +287,14 @@ jest
|
|
|
287
287
|
},
|
|
288
288
|
PlatformConstants: {
|
|
289
289
|
getConstants() {
|
|
290
|
-
return {
|
|
290
|
+
return {
|
|
291
|
+
reactNativeVersion: {
|
|
292
|
+
major: 1000,
|
|
293
|
+
minor: 0,
|
|
294
|
+
patch: 0,
|
|
295
|
+
prerelease: undefined,
|
|
296
|
+
},
|
|
297
|
+
};
|
|
291
298
|
},
|
|
292
299
|
},
|
|
293
300
|
PushNotificationManager: {
|
package/overrides.json
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"**/__snapshots__/**",
|
|
8
8
|
"src-win/rntypes/**"
|
|
9
9
|
],
|
|
10
|
-
"baseVersion": "0.76.0-nightly-
|
|
10
|
+
"baseVersion": "0.76.0-nightly-20240719-6d56cea28",
|
|
11
11
|
"overrides": [
|
|
12
12
|
{
|
|
13
13
|
"type": "derived",
|
|
14
14
|
"file": ".flowconfig",
|
|
15
15
|
"baseFile": ".flowconfig",
|
|
16
|
-
"baseHash": "
|
|
16
|
+
"baseHash": "83d25eb077cc8d865039ec211f3fedeac9e57d39"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"type": "derived",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"type": "patch",
|
|
30
30
|
"file": "src-win/Libraries/Alert/Alert.win32.js",
|
|
31
31
|
"baseFile": "packages/react-native/Libraries/Alert/Alert.js",
|
|
32
|
-
"baseHash": "
|
|
32
|
+
"baseHash": "173b99e6ae120f14176cf3425877728787d3feed"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"type": "derived",
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"type": "derived",
|
|
117
117
|
"file": "src-win/Libraries/Components/TextInput/TextInput.win32.js",
|
|
118
118
|
"baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
|
|
119
|
-
"baseHash": "
|
|
119
|
+
"baseHash": "2cc1ee09c4a71e79656db18576b4983cfca153ed"
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
122
|
"type": "patch",
|
|
@@ -344,7 +344,7 @@
|
|
|
344
344
|
"type": "derived",
|
|
345
345
|
"file": "src-win/Libraries/NativeComponent/BaseViewConfig.win32.js",
|
|
346
346
|
"baseFile": "packages/react-native/Libraries/NativeComponent/BaseViewConfig.ios.js",
|
|
347
|
-
"baseHash": "
|
|
347
|
+
"baseHash": "86178b8f2e04b5df9e4c8dc8ca412c22231e6673"
|
|
348
348
|
},
|
|
349
349
|
{
|
|
350
350
|
"type": "copy",
|
|
@@ -439,7 +439,7 @@
|
|
|
439
439
|
"type": "derived",
|
|
440
440
|
"file": "src-win/Libraries/Text/Text.win32.js",
|
|
441
441
|
"baseFile": "packages/react-native/Libraries/Text/Text.js",
|
|
442
|
-
"baseHash": "
|
|
442
|
+
"baseHash": "fa9abb0db816a992824228c520fc0381bf2a1f63"
|
|
443
443
|
},
|
|
444
444
|
{
|
|
445
445
|
"type": "derived",
|
|
@@ -498,13 +498,13 @@
|
|
|
498
498
|
"type": "derived",
|
|
499
499
|
"file": "src-win/Libraries/Utilities/Platform.flow.win32.js",
|
|
500
500
|
"baseFile": "packages/react-native/Libraries/Utilities/Platform.flow.js",
|
|
501
|
-
"baseHash": "
|
|
501
|
+
"baseHash": "f38efa527b9426ae0178bb2336be2e93af0392ba"
|
|
502
502
|
},
|
|
503
503
|
{
|
|
504
504
|
"type": "derived",
|
|
505
505
|
"file": "src-win/Libraries/Utilities/Platform.win32.js",
|
|
506
506
|
"baseFile": "packages/react-native/Libraries/Utilities/Platform.android.js",
|
|
507
|
-
"baseHash": "
|
|
507
|
+
"baseHash": "33f07d6fddb5290d05c8d4cc490312e3af88c70b"
|
|
508
508
|
},
|
|
509
509
|
{
|
|
510
510
|
"type": "copy",
|
|
@@ -528,7 +528,7 @@
|
|
|
528
528
|
"type": "derived",
|
|
529
529
|
"file": "src-win/src/private/specs/modules/NativePlatformConstantsWin.js",
|
|
530
530
|
"baseFile": "packages/react-native/src/private/specs/modules/NativePlatformConstantsAndroid.js",
|
|
531
|
-
"baseHash": "
|
|
531
|
+
"baseHash": "fa0f34a2de33b641bd63863629087644796d8b59"
|
|
532
532
|
}
|
|
533
533
|
]
|
|
534
534
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@office-iss/react-native-win32",
|
|
3
|
-
"version": "0.0.0-canary.
|
|
3
|
+
"version": "0.0.0-canary.259",
|
|
4
4
|
"description": "Implementation of react native on top of Office's Win32 platform.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
"@react-native-community/cli-platform-android": "14.0.0-alpha.11",
|
|
31
31
|
"@react-native-community/cli-platform-ios": "14.0.0-alpha.11",
|
|
32
32
|
"@react-native/assets": "1.0.0",
|
|
33
|
-
"@react-native/assets-registry": "0.76.0-nightly-
|
|
34
|
-
"@react-native/codegen": "0.76.0-nightly-
|
|
35
|
-
"@react-native/community-cli-plugin": "0.76.0-nightly-
|
|
36
|
-
"@react-native/gradle-plugin": "0.76.0-nightly-
|
|
37
|
-
"@react-native/js-polyfills": "0.76.0-nightly-
|
|
38
|
-
"@react-native/normalize-colors": "0.76.0-nightly-
|
|
39
|
-
"@react-native/virtualized-lists": "0.76.0-nightly-
|
|
33
|
+
"@react-native/assets-registry": "0.76.0-nightly-20240719-6d56cea28",
|
|
34
|
+
"@react-native/codegen": "0.76.0-nightly-20240719-6d56cea28",
|
|
35
|
+
"@react-native/community-cli-plugin": "0.76.0-nightly-20240719-6d56cea28",
|
|
36
|
+
"@react-native/gradle-plugin": "0.76.0-nightly-20240719-6d56cea28",
|
|
37
|
+
"@react-native/js-polyfills": "0.76.0-nightly-20240719-6d56cea28",
|
|
38
|
+
"@react-native/normalize-colors": "0.76.0-nightly-20240719-6d56cea28",
|
|
39
|
+
"@react-native/virtualized-lists": "0.76.0-nightly-20240719-6d56cea28",
|
|
40
40
|
"abort-controller": "^3.0.0",
|
|
41
41
|
"anser": "^1.4.9",
|
|
42
42
|
"ansi-regex": "^5.0.0",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"pretty-format": "^26.5.2",
|
|
58
58
|
"promise": "^8.3.0",
|
|
59
59
|
"react-clone-referenced-element": "^1.0.1",
|
|
60
|
-
"react-devtools-core": "^5.3.
|
|
60
|
+
"react-devtools-core": "^5.3.1",
|
|
61
61
|
"react-refresh": "^0.14.0",
|
|
62
62
|
"react-shallow-renderer": "^16.15.0",
|
|
63
63
|
"regenerator-runtime": "^0.13.2",
|
|
@@ -82,19 +82,19 @@
|
|
|
82
82
|
"@types/prop-types": "15.7.1",
|
|
83
83
|
"@types/react": "^18.2.6",
|
|
84
84
|
"eslint": "^8.19.0",
|
|
85
|
-
"flow-bin": "^0.
|
|
85
|
+
"flow-bin": "^0.241.0",
|
|
86
86
|
"jscodeshift": "^0.14.0",
|
|
87
87
|
"just-scripts": "^1.3.3",
|
|
88
88
|
"prettier": "2.8.8",
|
|
89
89
|
"react": "19.0.0-rc-fb9a90fa48-20240614",
|
|
90
|
-
"react-native": "0.76.0-nightly-
|
|
90
|
+
"react-native": "0.76.0-nightly-20240719-6d56cea28",
|
|
91
91
|
"react-native-platform-override": "^1.9.45",
|
|
92
92
|
"typescript": "5.0.4"
|
|
93
93
|
},
|
|
94
94
|
"peerDependencies": {
|
|
95
95
|
"@types/react": "^18.2.6",
|
|
96
96
|
"react": "^19.0.0-rc-fb9a90fa48-20240614",
|
|
97
|
-
"react-native": "0.76.0-nightly-
|
|
97
|
+
"react-native": "0.76.0-nightly-20240719-6d56cea28"
|
|
98
98
|
},
|
|
99
99
|
"beachball": {
|
|
100
100
|
"defaultNpmTag": "canary",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<7421319910b210753a1eddcf079aa151>>
|
|
8
8
|
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
@@ -32,9 +32,11 @@ export type ReactNativeFeatureFlagsJsOnly = {
|
|
|
32
32
|
enableAccessToHostTreeInFabric: Getter<boolean>,
|
|
33
33
|
isLayoutAnimationEnabled: Getter<boolean>,
|
|
34
34
|
shouldUseAnimatedObjectForTransform: Getter<boolean>,
|
|
35
|
-
shouldUseOptimizedText: Getter<boolean>,
|
|
36
35
|
shouldUseRemoveClippedSubviewsAsDefaultOnIOS: Getter<boolean>,
|
|
37
36
|
shouldUseSetNativePropsInFabric: Getter<boolean>,
|
|
37
|
+
shouldUseSetNativePropsInNativeAnimationsInFabric: Getter<boolean>,
|
|
38
|
+
usePassiveEffectsForAnimations: Getter<boolean>,
|
|
39
|
+
useRefsForTextInputState: Getter<boolean>,
|
|
38
40
|
};
|
|
39
41
|
|
|
40
42
|
export type ReactNativeFeatureFlagsJsOnlyOverrides = Partial<ReactNativeFeatureFlagsJsOnly>;
|
|
@@ -45,24 +47,31 @@ export type ReactNativeFeatureFlags = {
|
|
|
45
47
|
allowCollapsableChildren: Getter<boolean>,
|
|
46
48
|
allowRecursiveCommitsWithSynchronousMountOnAndroid: Getter<boolean>,
|
|
47
49
|
batchRenderingUpdatesInEventLoop: Getter<boolean>,
|
|
50
|
+
changeOrderOfMountingInstructionsOnAndroid: Getter<boolean>,
|
|
48
51
|
destroyFabricSurfacesInReactInstanceManager: Getter<boolean>,
|
|
49
|
-
|
|
52
|
+
enableAlignItemsBaselineOnFabricIOS: Getter<boolean>,
|
|
50
53
|
enableCleanTextInputYogaNode: Getter<boolean>,
|
|
51
54
|
enableGranularShadowTreeStateReconciliation: Getter<boolean>,
|
|
55
|
+
enableLongTaskAPI: Getter<boolean>,
|
|
52
56
|
enableMicrotasks: Getter<boolean>,
|
|
57
|
+
enablePropsUpdateReconciliationAndroid: Getter<boolean>,
|
|
53
58
|
enableSynchronousStateUpdates: Getter<boolean>,
|
|
54
59
|
enableUIConsistency: Getter<boolean>,
|
|
60
|
+
fetchImagesInViewPreallocation: Getter<boolean>,
|
|
61
|
+
fixIncorrectScrollViewStateUpdateOnAndroid: Getter<boolean>,
|
|
55
62
|
fixMappingOfEventPrioritiesBetweenFabricAndReact: Getter<boolean>,
|
|
56
|
-
|
|
63
|
+
fixMissedFabricStateUpdatesOnAndroid: Getter<boolean>,
|
|
57
64
|
forceBatchingMountItemsOnAndroid: Getter<boolean>,
|
|
58
65
|
fuseboxEnabledDebug: Getter<boolean>,
|
|
59
66
|
fuseboxEnabledRelease: Getter<boolean>,
|
|
67
|
+
initEagerTurboModulesOnNativeModulesQueueAndroid: Getter<boolean>,
|
|
60
68
|
lazyAnimationCallbacks: Getter<boolean>,
|
|
61
|
-
|
|
69
|
+
loadVectorDrawablesOnImages: Getter<boolean>,
|
|
62
70
|
setAndroidLayoutDirection: Getter<boolean>,
|
|
63
71
|
useImmediateExecutorInAndroidBridgeless: Getter<boolean>,
|
|
64
72
|
useModernRuntimeScheduler: Getter<boolean>,
|
|
65
73
|
useNativeViewConfigsInBridgelessMode: Getter<boolean>,
|
|
74
|
+
useNewReactImageViewBackgroundDrawing: Getter<boolean>,
|
|
66
75
|
useRuntimeShadowNodeReferenceUpdate: Getter<boolean>,
|
|
67
76
|
useRuntimeShadowNodeReferenceUpdateOnLayout: Getter<boolean>,
|
|
68
77
|
useStateAlignmentMechanism: Getter<boolean>,
|
|
@@ -98,11 +107,6 @@ export const isLayoutAnimationEnabled: Getter<boolean> = createJavaScriptFlagGet
|
|
|
98
107
|
*/
|
|
99
108
|
export const shouldUseAnimatedObjectForTransform: Getter<boolean> = createJavaScriptFlagGetter('shouldUseAnimatedObjectForTransform', false);
|
|
100
109
|
|
|
101
|
-
/**
|
|
102
|
-
* Use optimized version of <Text /> component.
|
|
103
|
-
*/
|
|
104
|
-
export const shouldUseOptimizedText: Getter<boolean> = createJavaScriptFlagGetter('shouldUseOptimizedText', false);
|
|
105
|
-
|
|
106
110
|
/**
|
|
107
111
|
* removeClippedSubviews prop will be used as the default in FlatList on iOS to match Android
|
|
108
112
|
*/
|
|
@@ -113,6 +117,21 @@ export const shouldUseRemoveClippedSubviewsAsDefaultOnIOS: Getter<boolean> = cre
|
|
|
113
117
|
*/
|
|
114
118
|
export const shouldUseSetNativePropsInFabric: Getter<boolean> = createJavaScriptFlagGetter('shouldUseSetNativePropsInFabric', true);
|
|
115
119
|
|
|
120
|
+
/**
|
|
121
|
+
* Enables use of setNativeProps in Native driven animations in Fabric.
|
|
122
|
+
*/
|
|
123
|
+
export const shouldUseSetNativePropsInNativeAnimationsInFabric: Getter<boolean> = createJavaScriptFlagGetter('shouldUseSetNativePropsInNativeAnimationsInFabric', false);
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Enable a variant of useAnimatedPropsLifecycle hook that constructs the animation graph in passive effect instead of layout effect
|
|
127
|
+
*/
|
|
128
|
+
export const usePassiveEffectsForAnimations: Getter<boolean> = createJavaScriptFlagGetter('usePassiveEffectsForAnimations', false);
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Enable a variant of TextInput that moves some state to refs to avoid unnecessary re-renders
|
|
132
|
+
*/
|
|
133
|
+
export const useRefsForTextInputState: Getter<boolean> = createJavaScriptFlagGetter('useRefsForTextInputState', false);
|
|
134
|
+
|
|
116
135
|
/**
|
|
117
136
|
* Common flag for testing. Do NOT modify.
|
|
118
137
|
*/
|
|
@@ -129,14 +148,18 @@ export const allowRecursiveCommitsWithSynchronousMountOnAndroid: Getter<boolean>
|
|
|
129
148
|
* When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.
|
|
130
149
|
*/
|
|
131
150
|
export const batchRenderingUpdatesInEventLoop: Getter<boolean> = createNativeFlagGetter('batchRenderingUpdatesInEventLoop', false);
|
|
151
|
+
/**
|
|
152
|
+
* When enabled, insert of views on Android will be moved from the beginning of the IntBufferBatchMountItem to be after layout updates.
|
|
153
|
+
*/
|
|
154
|
+
export const changeOrderOfMountingInstructionsOnAndroid: Getter<boolean> = createNativeFlagGetter('changeOrderOfMountingInstructionsOnAndroid', false);
|
|
132
155
|
/**
|
|
133
156
|
* When enabled, ReactInstanceManager will clean up Fabric surfaces on destroy().
|
|
134
157
|
*/
|
|
135
158
|
export const destroyFabricSurfacesInReactInstanceManager: Getter<boolean> = createNativeFlagGetter('destroyFabricSurfacesInReactInstanceManager', false);
|
|
136
159
|
/**
|
|
137
|
-
*
|
|
160
|
+
* Kill-switch to turn off support for aling-items:baseline on Fabric iOS.
|
|
138
161
|
*/
|
|
139
|
-
export const
|
|
162
|
+
export const enableAlignItemsBaselineOnFabricIOS: Getter<boolean> = createNativeFlagGetter('enableAlignItemsBaselineOnFabricIOS', true);
|
|
140
163
|
/**
|
|
141
164
|
* Clean yoga node when <TextInput /> does not change.
|
|
142
165
|
*/
|
|
@@ -145,10 +168,18 @@ export const enableCleanTextInputYogaNode: Getter<boolean> = createNativeFlagGet
|
|
|
145
168
|
* When enabled, the renderer would only fail commits when they propagate state and the last commit that updated state changed before committing.
|
|
146
169
|
*/
|
|
147
170
|
export const enableGranularShadowTreeStateReconciliation: Getter<boolean> = createNativeFlagGetter('enableGranularShadowTreeStateReconciliation', false);
|
|
171
|
+
/**
|
|
172
|
+
* Enables the reporting of long tasks through `PerformanceObserver`. Only works if the event loop is enabled.
|
|
173
|
+
*/
|
|
174
|
+
export const enableLongTaskAPI: Getter<boolean> = createNativeFlagGetter('enableLongTaskAPI', false);
|
|
148
175
|
/**
|
|
149
176
|
* Enables the use of microtasks in Hermes (scheduling) and RuntimeScheduler (execution).
|
|
150
177
|
*/
|
|
151
178
|
export const enableMicrotasks: Getter<boolean> = createNativeFlagGetter('enableMicrotasks', false);
|
|
179
|
+
/**
|
|
180
|
+
* When enabled, Android will receive prop updates based on the differences between the last rendered shadow node and the last committed shadow node.
|
|
181
|
+
*/
|
|
182
|
+
export const enablePropsUpdateReconciliationAndroid: Getter<boolean> = createNativeFlagGetter('enablePropsUpdateReconciliationAndroid', false);
|
|
152
183
|
/**
|
|
153
184
|
* Dispatches state updates synchronously in Fabric (e.g.: updates the scroll position in the shadow tree synchronously from the main thread).
|
|
154
185
|
*/
|
|
@@ -157,14 +188,22 @@ export const enableSynchronousStateUpdates: Getter<boolean> = createNativeFlagGe
|
|
|
157
188
|
* Ensures that JavaScript always has a consistent view of the state of the UI (e.g.: commits done in other threads are not immediately propagated to JS during its execution).
|
|
158
189
|
*/
|
|
159
190
|
export const enableUIConsistency: Getter<boolean> = createNativeFlagGetter('enableUIConsistency', false);
|
|
191
|
+
/**
|
|
192
|
+
* Start image fetching during view preallocation instead of waiting for layout pass
|
|
193
|
+
*/
|
|
194
|
+
export const fetchImagesInViewPreallocation: Getter<boolean> = createNativeFlagGetter('fetchImagesInViewPreallocation', false);
|
|
195
|
+
/**
|
|
196
|
+
* When doing a smooth scroll animation, it stops setting the state with the final scroll position in Fabric before the animation starts.
|
|
197
|
+
*/
|
|
198
|
+
export const fixIncorrectScrollViewStateUpdateOnAndroid: Getter<boolean> = createNativeFlagGetter('fixIncorrectScrollViewStateUpdateOnAndroid', false);
|
|
160
199
|
/**
|
|
161
200
|
* Uses the default event priority instead of the discreet event priority by default when dispatching events from Fabric to React.
|
|
162
201
|
*/
|
|
163
202
|
export const fixMappingOfEventPrioritiesBetweenFabricAndReact: Getter<boolean> = createNativeFlagGetter('fixMappingOfEventPrioritiesBetweenFabricAndReact', false);
|
|
164
203
|
/**
|
|
165
|
-
*
|
|
204
|
+
* Enables a fix to prevent the possibility of state updates in Fabric being missed due to race conditions with previous state updates.
|
|
166
205
|
*/
|
|
167
|
-
export const
|
|
206
|
+
export const fixMissedFabricStateUpdatesOnAndroid: Getter<boolean> = createNativeFlagGetter('fixMissedFabricStateUpdatesOnAndroid', false);
|
|
168
207
|
/**
|
|
169
208
|
* Forces the mounting layer on Android to always batch mount items instead of dispatching them immediately. This might fix some crashes related to synchronous state updates, where some views dispatch state updates during mount.
|
|
170
209
|
*/
|
|
@@ -172,23 +211,27 @@ export const forceBatchingMountItemsOnAndroid: Getter<boolean> = createNativeFla
|
|
|
172
211
|
/**
|
|
173
212
|
* Flag determining if the React Native DevTools (Fusebox) CDP backend should be enabled in debug builds. This flag is global and should not be changed across React Host lifetimes.
|
|
174
213
|
*/
|
|
175
|
-
export const fuseboxEnabledDebug: Getter<boolean> = createNativeFlagGetter('fuseboxEnabledDebug',
|
|
214
|
+
export const fuseboxEnabledDebug: Getter<boolean> = createNativeFlagGetter('fuseboxEnabledDebug', true);
|
|
176
215
|
/**
|
|
177
216
|
* Flag determining if the React Native DevTools (Fusebox) CDP backend should be enabled in release builds. This flag is global and should not be changed across React Host lifetimes.
|
|
178
217
|
*/
|
|
179
218
|
export const fuseboxEnabledRelease: Getter<boolean> = createNativeFlagGetter('fuseboxEnabledRelease', false);
|
|
219
|
+
/**
|
|
220
|
+
* Construct modules that requires eager init on the dedicate native modules thread
|
|
221
|
+
*/
|
|
222
|
+
export const initEagerTurboModulesOnNativeModulesQueueAndroid: Getter<boolean> = createNativeFlagGetter('initEagerTurboModulesOnNativeModulesQueueAndroid', false);
|
|
180
223
|
/**
|
|
181
224
|
* Only enqueue Choreographer calls if there is an ongoing animation, instead of enqueueing every frame.
|
|
182
225
|
*/
|
|
183
226
|
export const lazyAnimationCallbacks: Getter<boolean> = createNativeFlagGetter('lazyAnimationCallbacks', false);
|
|
184
227
|
/**
|
|
185
|
-
*
|
|
228
|
+
* Adds support for loading vector drawable assets in the Image component (only on Android)
|
|
186
229
|
*/
|
|
187
|
-
export const
|
|
230
|
+
export const loadVectorDrawablesOnImages: Getter<boolean> = createNativeFlagGetter('loadVectorDrawablesOnImages', false);
|
|
188
231
|
/**
|
|
189
232
|
* Propagate layout direction to Android views.
|
|
190
233
|
*/
|
|
191
|
-
export const setAndroidLayoutDirection: Getter<boolean> = createNativeFlagGetter('setAndroidLayoutDirection',
|
|
234
|
+
export const setAndroidLayoutDirection: Getter<boolean> = createNativeFlagGetter('setAndroidLayoutDirection', true);
|
|
192
235
|
/**
|
|
193
236
|
* Invoke callbacks immediately on the ReactInstance rather than going through a background thread for synchronization
|
|
194
237
|
*/
|
|
@@ -201,6 +244,10 @@ export const useModernRuntimeScheduler: Getter<boolean> = createNativeFlagGetter
|
|
|
201
244
|
* When enabled, the native view configs are used in bridgeless mode.
|
|
202
245
|
*/
|
|
203
246
|
export const useNativeViewConfigsInBridgelessMode: Getter<boolean> = createNativeFlagGetter('useNativeViewConfigsInBridgelessMode', false);
|
|
247
|
+
/**
|
|
248
|
+
* Use shared background drawing code for ReactImageView instead of using Fresco to manipulate the bitmap
|
|
249
|
+
*/
|
|
250
|
+
export const useNewReactImageViewBackgroundDrawing: Getter<boolean> = createNativeFlagGetter('useNewReactImageViewBackgroundDrawing', false);
|
|
204
251
|
/**
|
|
205
252
|
* When enabled, cloning shadow nodes within react native will update the reference held by the current JS fiber tree.
|
|
206
253
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<29f4ec3c941708dc99dd38adac52d6dc>>
|
|
8
8
|
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
@@ -27,24 +27,31 @@ export interface Spec extends TurboModule {
|
|
|
27
27
|
+allowCollapsableChildren?: () => boolean;
|
|
28
28
|
+allowRecursiveCommitsWithSynchronousMountOnAndroid?: () => boolean;
|
|
29
29
|
+batchRenderingUpdatesInEventLoop?: () => boolean;
|
|
30
|
+
+changeOrderOfMountingInstructionsOnAndroid?: () => boolean;
|
|
30
31
|
+destroyFabricSurfacesInReactInstanceManager?: () => boolean;
|
|
31
|
-
+
|
|
32
|
+
+enableAlignItemsBaselineOnFabricIOS?: () => boolean;
|
|
32
33
|
+enableCleanTextInputYogaNode?: () => boolean;
|
|
33
34
|
+enableGranularShadowTreeStateReconciliation?: () => boolean;
|
|
35
|
+
+enableLongTaskAPI?: () => boolean;
|
|
34
36
|
+enableMicrotasks?: () => boolean;
|
|
37
|
+
+enablePropsUpdateReconciliationAndroid?: () => boolean;
|
|
35
38
|
+enableSynchronousStateUpdates?: () => boolean;
|
|
36
39
|
+enableUIConsistency?: () => boolean;
|
|
40
|
+
+fetchImagesInViewPreallocation?: () => boolean;
|
|
41
|
+
+fixIncorrectScrollViewStateUpdateOnAndroid?: () => boolean;
|
|
37
42
|
+fixMappingOfEventPrioritiesBetweenFabricAndReact?: () => boolean;
|
|
38
|
-
+
|
|
43
|
+
+fixMissedFabricStateUpdatesOnAndroid?: () => boolean;
|
|
39
44
|
+forceBatchingMountItemsOnAndroid?: () => boolean;
|
|
40
45
|
+fuseboxEnabledDebug?: () => boolean;
|
|
41
46
|
+fuseboxEnabledRelease?: () => boolean;
|
|
47
|
+
+initEagerTurboModulesOnNativeModulesQueueAndroid?: () => boolean;
|
|
42
48
|
+lazyAnimationCallbacks?: () => boolean;
|
|
43
|
-
+
|
|
49
|
+
+loadVectorDrawablesOnImages?: () => boolean;
|
|
44
50
|
+setAndroidLayoutDirection?: () => boolean;
|
|
45
51
|
+useImmediateExecutorInAndroidBridgeless?: () => boolean;
|
|
46
52
|
+useModernRuntimeScheduler?: () => boolean;
|
|
47
53
|
+useNativeViewConfigsInBridgelessMode?: () => boolean;
|
|
54
|
+
+useNewReactImageViewBackgroundDrawing?: () => boolean;
|
|
48
55
|
+useRuntimeShadowNodeReferenceUpdate?: () => boolean;
|
|
49
56
|
+useRuntimeShadowNodeReferenceUpdateOnLayout?: () => boolean;
|
|
50
57
|
+useStateAlignmentMechanism?: () => boolean;
|
|
@@ -14,7 +14,7 @@ import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboMod
|
|
|
14
14
|
|
|
15
15
|
export interface Spec extends TurboModule {
|
|
16
16
|
// Common interface
|
|
17
|
-
+getInitialURL: () => Promise
|
|
17
|
+
+getInitialURL: () => Promise<?string>;
|
|
18
18
|
+canOpenURL: (url: string) => Promise<boolean>;
|
|
19
19
|
+openURL: (url: string) => Promise<void>;
|
|
20
20
|
+openSettings: () => Promise<void>;
|
|
@@ -12,6 +12,13 @@ import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
|
|
|
12
12
|
|
|
13
13
|
import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
|
|
14
14
|
|
|
15
|
+
export type ReactNativeVersionAndroid = {|
|
|
16
|
+
major: number,
|
|
17
|
+
minor: number,
|
|
18
|
+
patch: number,
|
|
19
|
+
prerelease: ?string,
|
|
20
|
+
|};
|
|
21
|
+
|
|
15
22
|
export type PlatformConstantsWin32 = {|
|
|
16
23
|
isTesting: boolean,
|
|
17
24
|
isDisableAnimations?: boolean,
|
|
@@ -19,7 +26,7 @@ export type PlatformConstantsWin32 = {|
|
|
|
19
26
|
major: number,
|
|
20
27
|
minor: number,
|
|
21
28
|
patch: number,
|
|
22
|
-
prerelease: ?string
|
|
29
|
+
prerelease: ?string,
|
|
23
30
|
|},
|
|
24
31
|
forceTouchAvailable: boolean,
|
|
25
32
|
osVersion: number,
|