@office-iss/react-native-win32 0.0.0-canary.252 → 0.0.0-canary.254
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 +7 -1
- package/CHANGELOG.json +79 -1
- package/CHANGELOG.md +30 -6
- package/Libraries/Animated/AnimatedImplementation.js +2 -0
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -4
- package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
- package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +4 -1
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/setUpTimers.js +5 -10
- package/Libraries/ReactNative/AppContainer-dev.js +3 -2
- package/Libraries/ReactNative/AppContainer-prod.js +2 -1
- package/Libraries/ReactNative/AppContainer.js +2 -0
- package/Libraries/ReactNative/AppRegistry.d.ts +7 -0
- package/Libraries/ReactNative/AppRegistry.js +8 -0
- package/Libraries/ReactNative/renderApplication.js +3 -0
- package/jest/setup.js +6 -2
- package/overrides.json +2 -2
- package/package.json +16 -15
- package/src/private/featureflags/ReactNativeFeatureFlags.js +25 -10
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +7 -4
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +3 -1
package/.flowconfig
CHANGED
|
@@ -58,6 +58,9 @@
|
|
|
58
58
|
<PROJECT_ROOT>/packages/react-native/template/.*
|
|
59
59
|
<PROJECT_ROOT>/packages/react-native/sdks/.*
|
|
60
60
|
|
|
61
|
+
; Ignore the codegen e2e tests
|
|
62
|
+
<PROJECT_ROOT>/packages/react-native-codegen/e2e/__test_fixtures__/modules/NativeEnumTurboModule.js
|
|
63
|
+
|
|
61
64
|
; Ignore the Dangerfile
|
|
62
65
|
<PROJECT_ROOT>/packages/react-native-bots/dangerfile.js
|
|
63
66
|
|
|
@@ -81,6 +84,9 @@
|
|
|
81
84
|
; Generated build output
|
|
82
85
|
<PROJECT_ROOT>/packages/.*/dist
|
|
83
86
|
|
|
87
|
+
; helloworld
|
|
88
|
+
<PROJECT_ROOT>/packages/helloworld/ios/Pods/
|
|
89
|
+
|
|
84
90
|
[untyped]
|
|
85
91
|
.*/node_modules/@react-native-community/cli/.*/.*
|
|
86
92
|
; Should work out how to do this properly
|
|
@@ -153,4 +159,4 @@ untyped-import
|
|
|
153
159
|
untyped-type-import
|
|
154
160
|
|
|
155
161
|
[version]
|
|
156
|
-
^0.
|
|
162
|
+
^0.237.2
|
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,85 @@
|
|
|
2
2
|
"name": "@office-iss/react-native-win32",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "Wed,
|
|
5
|
+
"date": "Wed, 12 Jun 2024 05:14:30 GMT",
|
|
6
|
+
"version": "0.0.0-canary.254",
|
|
7
|
+
"tag": "@office-iss/react-native-win32_v0.0.0-canary.254",
|
|
8
|
+
"comments": {
|
|
9
|
+
"prerelease": [
|
|
10
|
+
{
|
|
11
|
+
"author": "yajurgrover24@gmail.com",
|
|
12
|
+
"package": "@office-iss/react-native-win32",
|
|
13
|
+
"commit": "e2cced2ede4941e8ebcdb49feb9ded55a3ff5237",
|
|
14
|
+
"comment": "Integrate 6/10"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "beachball",
|
|
18
|
+
"package": "@office-iss/react-native-win32",
|
|
19
|
+
"comment": "Bump @rnw-scripts/eslint-config to v1.2.23",
|
|
20
|
+
"commit": "not available"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"author": "beachball",
|
|
24
|
+
"package": "@office-iss/react-native-win32",
|
|
25
|
+
"comment": "Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.27",
|
|
26
|
+
"commit": "not available"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"author": "beachball",
|
|
30
|
+
"package": "@office-iss/react-native-win32",
|
|
31
|
+
"comment": "Bump @rnw-scripts/just-task to v2.3.40",
|
|
32
|
+
"commit": "not available"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"author": "beachball",
|
|
36
|
+
"package": "@office-iss/react-native-win32",
|
|
37
|
+
"comment": "Bump react-native-platform-override to v1.9.41",
|
|
38
|
+
"commit": "not available"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"date": "Sat, 08 Jun 2024 05:17:56 GMT",
|
|
45
|
+
"version": "0.0.0-canary.253",
|
|
46
|
+
"tag": "@office-iss/react-native-win32_v0.0.0-canary.253",
|
|
47
|
+
"comments": {
|
|
48
|
+
"prerelease": [
|
|
49
|
+
{
|
|
50
|
+
"author": "34109996+chiaramooney@users.noreply.github.com",
|
|
51
|
+
"package": "@office-iss/react-native-win32",
|
|
52
|
+
"commit": "d42a78eeeb8b25ea0b4c054c48ee0891bc16d8b8",
|
|
53
|
+
"comment": "Integrate 5/31"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"author": "beachball",
|
|
57
|
+
"package": "@office-iss/react-native-win32",
|
|
58
|
+
"comment": "Bump @rnw-scripts/eslint-config to v1.2.22",
|
|
59
|
+
"commit": "not available"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"author": "beachball",
|
|
63
|
+
"package": "@office-iss/react-native-win32",
|
|
64
|
+
"comment": "Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.26",
|
|
65
|
+
"commit": "not available"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"author": "beachball",
|
|
69
|
+
"package": "@office-iss/react-native-win32",
|
|
70
|
+
"comment": "Bump @rnw-scripts/just-task to v2.3.39",
|
|
71
|
+
"commit": "not available"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"author": "beachball",
|
|
75
|
+
"package": "@office-iss/react-native-win32",
|
|
76
|
+
"comment": "Bump react-native-platform-override to v1.9.40",
|
|
77
|
+
"commit": "not available"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"date": "Wed, 05 Jun 2024 05:18:09 GMT",
|
|
6
84
|
"version": "0.0.0-canary.252",
|
|
7
85
|
"tag": "@office-iss/react-native-win32_v0.0.0-canary.252",
|
|
8
86
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,19 +1,43 @@
|
|
|
1
1
|
# Change Log - @office-iss/react-native-win32
|
|
2
2
|
|
|
3
|
-
This log was last generated on Wed,
|
|
3
|
+
This log was last generated on Wed, 12 Jun 2024 05:14:30 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
-
## 0.0.0-canary.
|
|
7
|
+
## 0.0.0-canary.254
|
|
8
8
|
|
|
9
|
-
Wed,
|
|
9
|
+
Wed, 12 Jun 2024 05:14:30 GMT
|
|
10
10
|
|
|
11
11
|
### Changes
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
- Bump @rnw-scripts/
|
|
15
|
-
- Bump
|
|
13
|
+
- Integrate 6/10 (yajurgrover24@gmail.com)
|
|
14
|
+
- Bump @rnw-scripts/eslint-config to v1.2.23
|
|
15
|
+
- Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.27
|
|
16
|
+
- Bump @rnw-scripts/just-task to v2.3.40
|
|
17
|
+
- Bump react-native-platform-override to v1.9.41
|
|
16
18
|
|
|
19
|
+
## 0.0.0-canary.253
|
|
20
|
+
|
|
21
|
+
Sat, 08 Jun 2024 05:17:56 GMT
|
|
22
|
+
|
|
23
|
+
### Changes
|
|
24
|
+
|
|
25
|
+
- Integrate 5/31 (34109996+chiaramooney@users.noreply.github.com)
|
|
26
|
+
- Bump @rnw-scripts/eslint-config to v1.2.22
|
|
27
|
+
- Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.26
|
|
28
|
+
- Bump @rnw-scripts/just-task to v2.3.39
|
|
29
|
+
- Bump react-native-platform-override to v1.9.40
|
|
30
|
+
|
|
31
|
+
## 0.0.0-canary.252
|
|
32
|
+
|
|
33
|
+
Wed, 05 Jun 2024 05:18:09 GMT
|
|
34
|
+
|
|
35
|
+
### Changes
|
|
36
|
+
|
|
37
|
+
- Use prettier-plugin-hermes-parser to match upstream settings (email not defined)
|
|
38
|
+
- Bump @rnw-scripts/just-task to v2.3.38
|
|
39
|
+
- Bump react-native-platform-override to v1.9.39
|
|
40
|
+
|
|
17
41
|
## 0.0.0-canary.251
|
|
18
42
|
|
|
19
43
|
Tue, 04 Jun 2024 05:18:34 GMT
|
|
@@ -119,7 +119,7 @@ type Props = $ReadOnly<{|
|
|
|
119
119
|
|}>;
|
|
120
120
|
|
|
121
121
|
type State = {|
|
|
122
|
-
|
|
122
|
+
drawerOpened: boolean,
|
|
123
123
|
|};
|
|
124
124
|
|
|
125
125
|
/**
|
|
@@ -168,7 +168,9 @@ class DrawerLayoutAndroid extends React.Component<Props, State> {
|
|
|
168
168
|
React.ElementRef<typeof AndroidDrawerLayoutNativeComponent>,
|
|
169
169
|
>();
|
|
170
170
|
|
|
171
|
-
state: State = {
|
|
171
|
+
state: State = {
|
|
172
|
+
drawerOpened: false,
|
|
173
|
+
};
|
|
172
174
|
|
|
173
175
|
render(): React.Node {
|
|
174
176
|
const {
|
|
@@ -189,6 +191,7 @@ class DrawerLayoutAndroid extends React.Component<Props, State> {
|
|
|
189
191
|
backgroundColor: drawerBackgroundColor,
|
|
190
192
|
},
|
|
191
193
|
]}
|
|
194
|
+
pointerEvents={this.state.drawerOpened ? 'auto' : 'none'}
|
|
192
195
|
collapsable={false}>
|
|
193
196
|
{renderNavigationView()}
|
|
194
197
|
{drawStatusBar && <View style={styles.drawerStatusBar} />}
|
|
@@ -245,12 +248,18 @@ class DrawerLayoutAndroid extends React.Component<Props, State> {
|
|
|
245
248
|
};
|
|
246
249
|
|
|
247
250
|
_onDrawerOpen = () => {
|
|
251
|
+
this.setState({
|
|
252
|
+
drawerOpened: true,
|
|
253
|
+
});
|
|
248
254
|
if (this.props.onDrawerOpen) {
|
|
249
255
|
this.props.onDrawerOpen();
|
|
250
256
|
}
|
|
251
257
|
};
|
|
252
258
|
|
|
253
259
|
_onDrawerClose = () => {
|
|
260
|
+
this.setState({
|
|
261
|
+
drawerOpened: false,
|
|
262
|
+
});
|
|
254
263
|
if (this.props.onDrawerClose) {
|
|
255
264
|
this.props.onDrawerClose();
|
|
256
265
|
}
|
|
@@ -385,15 +385,6 @@ export type NativeProps = $ReadOnly<{|
|
|
|
385
385
|
|}>,
|
|
386
386
|
>,
|
|
387
387
|
|
|
388
|
-
onTextInput?: ?BubblingEventHandler<
|
|
389
|
-
$ReadOnly<{|
|
|
390
|
-
target: Int32,
|
|
391
|
-
text: string,
|
|
392
|
-
previousText: string,
|
|
393
|
-
range: $ReadOnly<{|start: Double, end: Double|}>,
|
|
394
|
-
|}>,
|
|
395
|
-
>,
|
|
396
|
-
|
|
397
388
|
/**
|
|
398
389
|
* Callback that is called when text input ends.
|
|
399
390
|
*/
|
|
@@ -662,12 +653,6 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
|
|
|
662
653
|
captured: 'onSubmitEditingCapture',
|
|
663
654
|
},
|
|
664
655
|
},
|
|
665
|
-
topTextInput: {
|
|
666
|
-
phasedRegistrationNames: {
|
|
667
|
-
bubbled: 'onTextInput',
|
|
668
|
-
captured: 'onTextInputCapture',
|
|
669
|
-
},
|
|
670
|
-
},
|
|
671
656
|
},
|
|
672
657
|
directEventTypes: {
|
|
673
658
|
topScroll: {
|
|
@@ -76,9 +76,6 @@ const RCTTextInputViewConfig = {
|
|
|
76
76
|
},
|
|
77
77
|
},
|
|
78
78
|
directEventTypes: {
|
|
79
|
-
topTextInput: {
|
|
80
|
-
registrationName: 'onTextInput',
|
|
81
|
-
},
|
|
82
79
|
topScroll: {
|
|
83
80
|
registrationName: 'onScroll',
|
|
84
81
|
},
|
|
@@ -153,7 +150,6 @@ const RCTTextInputViewConfig = {
|
|
|
153
150
|
onSelectionChange: true,
|
|
154
151
|
onContentSizeChange: true,
|
|
155
152
|
onScroll: true,
|
|
156
|
-
onTextInput: true,
|
|
157
153
|
}),
|
|
158
154
|
},
|
|
159
155
|
};
|
|
@@ -485,15 +485,6 @@ export interface TextInputSubmitEditingEventData {
|
|
|
485
485
|
text: string;
|
|
486
486
|
}
|
|
487
487
|
|
|
488
|
-
/**
|
|
489
|
-
* @see TextInputProps.onTextInput
|
|
490
|
-
*/
|
|
491
|
-
export interface TextInputTextInputEventData {
|
|
492
|
-
text: string;
|
|
493
|
-
previousText: string;
|
|
494
|
-
range: {start: number; end: number};
|
|
495
|
-
}
|
|
496
|
-
|
|
497
488
|
/**
|
|
498
489
|
* @see https://reactnative.dev/docs/textinput#props
|
|
499
490
|
*/
|
|
@@ -787,16 +778,6 @@ export interface TextInputProps
|
|
|
787
778
|
| ((e: NativeSyntheticEvent<TextInputSubmitEditingEventData>) => void)
|
|
788
779
|
| undefined;
|
|
789
780
|
|
|
790
|
-
/**
|
|
791
|
-
* Callback that is called on new text input with the argument
|
|
792
|
-
* `{ nativeEvent: { text, previousText, range: { start, end } } }`.
|
|
793
|
-
*
|
|
794
|
-
* This prop requires multiline={true} to be set.
|
|
795
|
-
*/
|
|
796
|
-
onTextInput?:
|
|
797
|
-
| ((e: NativeSyntheticEvent<TextInputTextInputEventData>) => void)
|
|
798
|
-
| undefined;
|
|
799
|
-
|
|
800
781
|
/**
|
|
801
782
|
* Invoked on content scroll with
|
|
802
783
|
* `{ nativeEvent: { contentOffset: { x, y } } }`.
|
|
@@ -342,7 +342,9 @@ class TouchableHighlight extends React.Component<Props, State> {
|
|
|
342
342
|
nextFocusRight={this.props.nextFocusRight}
|
|
343
343
|
nextFocusUp={this.props.nextFocusUp}
|
|
344
344
|
focusable={
|
|
345
|
-
this.props.focusable !== false &&
|
|
345
|
+
this.props.focusable !== false &&
|
|
346
|
+
this.props.onPress !== undefined &&
|
|
347
|
+
!this.props.disabled
|
|
346
348
|
}
|
|
347
349
|
nativeID={this.props.id ?? this.props.nativeID}
|
|
348
350
|
testID={this.props.testID}
|
|
@@ -287,7 +287,9 @@ class TouchableOpacity extends React.Component<Props, State> {
|
|
|
287
287
|
hasTVPreferredFocus={this.props.hasTVPreferredFocus}
|
|
288
288
|
hitSlop={this.props.hitSlop}
|
|
289
289
|
focusable={
|
|
290
|
-
this.props.focusable !== false &&
|
|
290
|
+
this.props.focusable !== false &&
|
|
291
|
+
this.props.onPress !== undefined &&
|
|
292
|
+
!this.props.disabled
|
|
291
293
|
}
|
|
292
294
|
ref={this.props.hostRef}
|
|
293
295
|
{...eventHandlersWithoutBlurAndFocus}>
|
|
@@ -208,7 +208,10 @@ module.exports = function TouchableWithoutFeedback(props: Props): React.Node {
|
|
|
208
208
|
disabled: props.disabled,
|
|
209
209
|
}
|
|
210
210
|
: _accessibilityState,
|
|
211
|
-
focusable:
|
|
211
|
+
focusable:
|
|
212
|
+
props.focusable !== false &&
|
|
213
|
+
props.onPress !== undefined &&
|
|
214
|
+
!props.disabled,
|
|
212
215
|
|
|
213
216
|
accessibilityElementsHidden:
|
|
214
217
|
props['aria-hidden'] ?? props.accessibilityElementsHidden,
|
|
@@ -63,17 +63,12 @@ if (
|
|
|
63
63
|
// mechanism to pass feature flags from RN to React in OSS.
|
|
64
64
|
global.RN$enableMicrotasksInReact = true;
|
|
65
65
|
|
|
66
|
-
polyfillGlobal(
|
|
67
|
-
|
|
66
|
+
polyfillGlobal(
|
|
67
|
+
'queueMicrotask',
|
|
68
|
+
() =>
|
|
68
69
|
require('../../src/private/webapis/microtasks/specs/NativeMicrotasks')
|
|
69
|
-
.default
|
|
70
|
-
|
|
71
|
-
return nativeQueueMicrotask;
|
|
72
|
-
} else {
|
|
73
|
-
// For backwards-compatibility
|
|
74
|
-
return global.HermesInternal?.enqueueJob;
|
|
75
|
-
}
|
|
76
|
-
});
|
|
70
|
+
.default.queueMicrotask,
|
|
71
|
+
);
|
|
77
72
|
|
|
78
73
|
// We shim the immediate APIs via `queueMicrotask` to maintain the backward
|
|
79
74
|
// compatibility.
|
|
@@ -92,6 +92,7 @@ const AppContainer = ({
|
|
|
92
92
|
rootTag,
|
|
93
93
|
showArchitectureIndicator,
|
|
94
94
|
WrapperComponent,
|
|
95
|
+
rootViewStyle,
|
|
95
96
|
}: Props): React.Node => {
|
|
96
97
|
const appContainerRootViewRef: AppContainerRootViewRef = React.useRef(null);
|
|
97
98
|
const innerViewRef: InspectedViewRef = React.useRef(null);
|
|
@@ -141,7 +142,7 @@ const AppContainer = ({
|
|
|
141
142
|
collapsable={reactDevToolsAgent == null && !shouldRenderInspector}
|
|
142
143
|
pointerEvents="box-none"
|
|
143
144
|
key={key}
|
|
144
|
-
style={styles.container}
|
|
145
|
+
style={rootViewStyle || styles.container}
|
|
145
146
|
ref={innerViewRef}>
|
|
146
147
|
{children}
|
|
147
148
|
</View>
|
|
@@ -167,7 +168,7 @@ const AppContainer = ({
|
|
|
167
168
|
<RootTagContext.Provider value={createRootTag(rootTag)}>
|
|
168
169
|
<View
|
|
169
170
|
ref={appContainerRootViewRef}
|
|
170
|
-
style={styles.container}
|
|
171
|
+
style={rootViewStyle || styles.container}
|
|
171
172
|
pointerEvents="box-none">
|
|
172
173
|
{innerView}
|
|
173
174
|
|
|
@@ -23,6 +23,7 @@ const AppContainer = ({
|
|
|
23
23
|
rootTag,
|
|
24
24
|
showArchitectureIndicator,
|
|
25
25
|
WrapperComponent,
|
|
26
|
+
rootViewStyle,
|
|
26
27
|
}: Props): React.Node => {
|
|
27
28
|
let innerView = children;
|
|
28
29
|
|
|
@@ -39,7 +40,7 @@ const AppContainer = ({
|
|
|
39
40
|
|
|
40
41
|
return (
|
|
41
42
|
<RootTagContext.Provider value={createRootTag(rootTag)}>
|
|
42
|
-
<View style={styles.root} pointerEvents="box-none">
|
|
43
|
+
<View style={rootViewStyle || styles.root} pointerEvents="box-none">
|
|
43
44
|
{innerView}
|
|
44
45
|
</View>
|
|
45
46
|
</RootTagContext.Provider>
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @flow
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
|
|
11
12
|
import type {RootTag} from './RootTag';
|
|
12
13
|
|
|
13
14
|
import * as React from 'react';
|
|
@@ -19,6 +20,7 @@ export type Props = $ReadOnly<{|
|
|
|
19
20
|
initialProps?: {...},
|
|
20
21
|
showArchitectureIndicator?: boolean,
|
|
21
22
|
WrapperComponent?: ?React.ComponentType<any>,
|
|
23
|
+
rootViewStyle?: ?ViewStyleProp,
|
|
22
24
|
internal_excludeLogBox?: boolean,
|
|
23
25
|
internal_excludeInspector?: boolean,
|
|
24
26
|
|}>;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
import type * as React from 'react';
|
|
11
11
|
import type {IPerformanceLogger} from '../Utilities/IPerformanceLogger';
|
|
12
|
+
import type {ViewStyle} from '../StyleSheet/StyleSheetTypes';
|
|
12
13
|
|
|
13
14
|
type Task = (taskData: any) => Promise<void>;
|
|
14
15
|
type TaskProvider = () => Task;
|
|
@@ -34,6 +35,8 @@ export type WrapperComponentProvider = (
|
|
|
34
35
|
appParameters: any,
|
|
35
36
|
) => React.ComponentType<any>;
|
|
36
37
|
|
|
38
|
+
export type RootViewStyleProvider = (appParameters: any) => ViewStyle;
|
|
39
|
+
|
|
37
40
|
/**
|
|
38
41
|
* `AppRegistry` is the JS entry point to running all React Native apps. App
|
|
39
42
|
* root components should register themselves with
|
|
@@ -54,6 +57,10 @@ export namespace AppRegistry {
|
|
|
54
57
|
provider: WrapperComponentProvider,
|
|
55
58
|
): void;
|
|
56
59
|
|
|
60
|
+
export function setRootViewStyleProvider(
|
|
61
|
+
provider: RootViewStyleProvider,
|
|
62
|
+
): void;
|
|
63
|
+
|
|
57
64
|
export function registerConfig(config: AppConfig[]): void;
|
|
58
65
|
|
|
59
66
|
export function registerComponent(
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
|
|
11
12
|
import type {RootTag} from '../Types/RootTagTypes';
|
|
12
13
|
import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
|
|
13
14
|
import type {DisplayModeType} from './DisplayMode';
|
|
@@ -60,6 +61,7 @@ export type Registry = {
|
|
|
60
61
|
export type WrapperComponentProvider = (
|
|
61
62
|
appParameters: Object,
|
|
62
63
|
) => React$ComponentType<any>;
|
|
64
|
+
export type RootViewStyleProvider = (appParameters: Object) => ViewStyleProp;
|
|
63
65
|
|
|
64
66
|
const runnables: Runnables = {};
|
|
65
67
|
let runCount = 1;
|
|
@@ -70,6 +72,7 @@ let componentProviderInstrumentationHook: ComponentProviderInstrumentationHook =
|
|
|
70
72
|
(component: ComponentProvider) => component();
|
|
71
73
|
|
|
72
74
|
let wrapperComponentProvider: ?WrapperComponentProvider;
|
|
75
|
+
let rootViewStyleProvider: ?RootViewStyleProvider;
|
|
73
76
|
let showArchitectureIndicator = false;
|
|
74
77
|
|
|
75
78
|
/**
|
|
@@ -82,6 +85,10 @@ const AppRegistry = {
|
|
|
82
85
|
wrapperComponentProvider = provider;
|
|
83
86
|
},
|
|
84
87
|
|
|
88
|
+
setRootViewStyleProvider(provider: RootViewStyleProvider) {
|
|
89
|
+
rootViewStyleProvider = provider;
|
|
90
|
+
},
|
|
91
|
+
|
|
85
92
|
enableArchitectureIndicator(enabled: boolean): void {
|
|
86
93
|
showArchitectureIndicator = enabled;
|
|
87
94
|
},
|
|
@@ -130,6 +137,7 @@ const AppRegistry = {
|
|
|
130
137
|
appParameters.initialProps,
|
|
131
138
|
appParameters.rootTag,
|
|
132
139
|
wrapperComponentProvider && wrapperComponentProvider(appParameters),
|
|
140
|
+
rootViewStyleProvider && rootViewStyleProvider(appParameters),
|
|
133
141
|
appParameters.fabric,
|
|
134
142
|
showArchitectureIndicator,
|
|
135
143
|
scopedPerformanceLogger,
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @flow
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
|
|
11
12
|
import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
|
|
12
13
|
|
|
13
14
|
import GlobalPerformanceLogger from '../Utilities/GlobalPerformanceLogger';
|
|
@@ -32,6 +33,7 @@ export default function renderApplication<Props: Object>(
|
|
|
32
33
|
initialProps: Props,
|
|
33
34
|
rootTag: any,
|
|
34
35
|
WrapperComponent?: ?React.ComponentType<any>,
|
|
36
|
+
rootViewStyle?: ?ViewStyleProp,
|
|
35
37
|
fabric?: boolean,
|
|
36
38
|
showArchitectureIndicator?: boolean,
|
|
37
39
|
scopedPerformanceLogger?: IPerformanceLogger,
|
|
@@ -52,6 +54,7 @@ export default function renderApplication<Props: Object>(
|
|
|
52
54
|
fabric={fabric}
|
|
53
55
|
showArchitectureIndicator={showArchitectureIndicator}
|
|
54
56
|
WrapperComponent={WrapperComponent}
|
|
57
|
+
rootViewStyle={rootViewStyle}
|
|
55
58
|
initialProps={initialProps ?? Object.freeze({})}
|
|
56
59
|
internal_excludeLogBox={isLogBox}>
|
|
57
60
|
<RootComponent {...initialProps} rootTag={rootTag} />
|
package/jest/setup.js
CHANGED
|
@@ -137,7 +137,9 @@ jest
|
|
|
137
137
|
.mock('../Libraries/Components/AccessibilityInfo/AccessibilityInfo', () => ({
|
|
138
138
|
__esModule: true,
|
|
139
139
|
default: {
|
|
140
|
-
addEventListener: jest.fn()
|
|
140
|
+
addEventListener: jest.fn(() => ({
|
|
141
|
+
remove: jest.fn(),
|
|
142
|
+
})),
|
|
141
143
|
announceForAccessibility: jest.fn(),
|
|
142
144
|
isAccessibilityServiceEnabled: jest.fn(),
|
|
143
145
|
isBoldTextEnabled: jest.fn(),
|
|
@@ -200,7 +202,9 @@ jest
|
|
|
200
202
|
openURL: jest.fn(),
|
|
201
203
|
canOpenURL: jest.fn(() => Promise.resolve(true)),
|
|
202
204
|
openSettings: jest.fn(),
|
|
203
|
-
addEventListener: jest.fn()
|
|
205
|
+
addEventListener: jest.fn(() => ({
|
|
206
|
+
remove: jest.fn(),
|
|
207
|
+
})),
|
|
204
208
|
getInitialURL: jest.fn(() => Promise.resolve()),
|
|
205
209
|
sendIntent: jest.fn(),
|
|
206
210
|
}))
|
package/overrides.json
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"**/__snapshots__/**",
|
|
8
8
|
"src-win/rntypes/**"
|
|
9
9
|
],
|
|
10
|
-
"baseVersion": "0.75.0-nightly-
|
|
10
|
+
"baseVersion": "0.75.0-nightly-20240610-ced076210",
|
|
11
11
|
"overrides": [
|
|
12
12
|
{
|
|
13
13
|
"type": "derived",
|
|
14
14
|
"file": ".flowconfig",
|
|
15
15
|
"baseFile": ".flowconfig",
|
|
16
|
-
"baseHash": "
|
|
16
|
+
"baseHash": "0a0c16d79748a5e84407a57c772c3508160134ae"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"type": "derived",
|
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.254",
|
|
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.2",
|
|
31
31
|
"@react-native-community/cli-platform-ios": "14.0.0-alpha.2",
|
|
32
32
|
"@react-native/assets": "1.0.0",
|
|
33
|
-
"@react-native/assets-registry": "0.75.0-nightly-
|
|
34
|
-
"@react-native/codegen": "0.75.0-nightly-
|
|
35
|
-
"@react-native/community-cli-plugin": "0.75.0-nightly-
|
|
36
|
-
"@react-native/gradle-plugin": "0.75.0-nightly-
|
|
37
|
-
"@react-native/js-polyfills": "0.75.0-nightly-
|
|
38
|
-
"@react-native/normalize-colors": "0.75.0-nightly-
|
|
39
|
-
"@react-native/virtualized-lists": "0.75.0-nightly-
|
|
33
|
+
"@react-native/assets-registry": "0.75.0-nightly-20240610-ced076210",
|
|
34
|
+
"@react-native/codegen": "0.75.0-nightly-20240610-ced076210",
|
|
35
|
+
"@react-native/community-cli-plugin": "0.75.0-nightly-20240610-ced076210",
|
|
36
|
+
"@react-native/gradle-plugin": "0.75.0-nightly-20240610-ced076210",
|
|
37
|
+
"@react-native/js-polyfills": "0.75.0-nightly-20240610-ced076210",
|
|
38
|
+
"@react-native/normalize-colors": "0.75.0-nightly-20240610-ced076210",
|
|
39
|
+
"@react-native/virtualized-lists": "0.75.0-nightly-20240610-ced076210",
|
|
40
40
|
"abort-controller": "^3.0.0",
|
|
41
41
|
"anser": "^1.4.9",
|
|
42
42
|
"ansi-regex": "^5.0.0",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"chalk": "^4.0.0",
|
|
46
46
|
"event-target-shim": "^5.0.1",
|
|
47
47
|
"flow-enums-runtime": "^0.0.6",
|
|
48
|
+
"glob": "^7.1.1",
|
|
48
49
|
"invariant": "^2.2.4",
|
|
49
50
|
"jest-environment-node": "^29.6.3",
|
|
50
51
|
"jsc-android": "^250231.0.0",
|
|
@@ -70,11 +71,11 @@
|
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@babel/core": "^7.20.0",
|
|
72
73
|
"@babel/eslint-parser": "^7.20.0",
|
|
73
|
-
"@react-native/metro-config": "0.75.0-nightly-
|
|
74
|
+
"@react-native/metro-config": "0.75.0-nightly-20240610-ced076210",
|
|
74
75
|
"@rnw-scripts/babel-react-native-config": "0.0.0",
|
|
75
|
-
"@rnw-scripts/eslint-config": "1.2.
|
|
76
|
-
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.
|
|
77
|
-
"@rnw-scripts/just-task": "2.3.
|
|
76
|
+
"@rnw-scripts/eslint-config": "1.2.23",
|
|
77
|
+
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.27",
|
|
78
|
+
"@rnw-scripts/just-task": "2.3.40",
|
|
78
79
|
"@rnw-scripts/metro-dev-config": "0.0.0",
|
|
79
80
|
"@rnx-kit/jest-preset": "^0.1.0",
|
|
80
81
|
"@types/node": "^18.0.0",
|
|
@@ -86,14 +87,14 @@
|
|
|
86
87
|
"just-scripts": "^1.3.3",
|
|
87
88
|
"prettier": "2.8.8",
|
|
88
89
|
"react": "18.3.1",
|
|
89
|
-
"react-native": "0.75.0-nightly-
|
|
90
|
-
"react-native-platform-override": "^1.9.
|
|
90
|
+
"react-native": "0.75.0-nightly-20240610-ced076210",
|
|
91
|
+
"react-native-platform-override": "^1.9.41",
|
|
91
92
|
"typescript": "5.0.4"
|
|
92
93
|
},
|
|
93
94
|
"peerDependencies": {
|
|
94
95
|
"@types/react": "^18.2.6",
|
|
95
96
|
"react": "^18.2.0",
|
|
96
|
-
"react-native": "0.75.0-nightly-
|
|
97
|
+
"react-native": "0.75.0-nightly-20240610-ced076210"
|
|
97
98
|
},
|
|
98
99
|
"beachball": {
|
|
99
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<<870e25c844e692bb04ee49fe20cd3baf>>
|
|
8
8
|
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
@@ -42,7 +42,7 @@ export type ReactNativeFeatureFlags = {
|
|
|
42
42
|
...ReactNativeFeatureFlagsJsOnly,
|
|
43
43
|
commonTestFlag: Getter<boolean>,
|
|
44
44
|
allowCollapsableChildren: Getter<boolean>,
|
|
45
|
-
|
|
45
|
+
allowRecursiveCommitsWithSynchronousMountOnAndroid: Getter<boolean>,
|
|
46
46
|
batchRenderingUpdatesInEventLoop: Getter<boolean>,
|
|
47
47
|
destroyFabricSurfacesInReactInstanceManager: Getter<boolean>,
|
|
48
48
|
enableBackgroundExecutor: Getter<boolean>,
|
|
@@ -53,13 +53,16 @@ export type ReactNativeFeatureFlags = {
|
|
|
53
53
|
enableUIConsistency: Getter<boolean>,
|
|
54
54
|
fixStoppedSurfaceRemoveDeleteTreeUIFrameCallbackLeak: Getter<boolean>,
|
|
55
55
|
forceBatchingMountItemsOnAndroid: Getter<boolean>,
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
fuseboxEnabledDebug: Getter<boolean>,
|
|
57
|
+
fuseboxEnabledRelease: Getter<boolean>,
|
|
58
58
|
lazyAnimationCallbacks: Getter<boolean>,
|
|
59
59
|
preventDoubleTextMeasure: Getter<boolean>,
|
|
60
60
|
setAndroidLayoutDirection: Getter<boolean>,
|
|
61
|
+
useImmediateExecutorInAndroidBridgeless: Getter<boolean>,
|
|
61
62
|
useModernRuntimeScheduler: Getter<boolean>,
|
|
62
63
|
useNativeViewConfigsInBridgelessMode: Getter<boolean>,
|
|
64
|
+
useRuntimeShadowNodeReferenceUpdate: Getter<boolean>,
|
|
65
|
+
useRuntimeShadowNodeReferenceUpdateOnLayout: Getter<boolean>,
|
|
63
66
|
useStateAlignmentMechanism: Getter<boolean>,
|
|
64
67
|
}
|
|
65
68
|
|
|
@@ -112,9 +115,9 @@ export const commonTestFlag: Getter<boolean> = createNativeFlagGetter('commonTes
|
|
|
112
115
|
*/
|
|
113
116
|
export const allowCollapsableChildren: Getter<boolean> = createNativeFlagGetter('allowCollapsableChildren', true);
|
|
114
117
|
/**
|
|
115
|
-
*
|
|
118
|
+
* Adds support for recursively processing commits that mount synchronously (Android only).
|
|
116
119
|
*/
|
|
117
|
-
export const
|
|
120
|
+
export const allowRecursiveCommitsWithSynchronousMountOnAndroid: Getter<boolean> = createNativeFlagGetter('allowRecursiveCommitsWithSynchronousMountOnAndroid', false);
|
|
118
121
|
/**
|
|
119
122
|
* 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.
|
|
120
123
|
*/
|
|
@@ -156,13 +159,13 @@ export const fixStoppedSurfaceRemoveDeleteTreeUIFrameCallbackLeak: Getter<boolea
|
|
|
156
159
|
*/
|
|
157
160
|
export const forceBatchingMountItemsOnAndroid: Getter<boolean> = createNativeFlagGetter('forceBatchingMountItemsOnAndroid', false);
|
|
158
161
|
/**
|
|
159
|
-
* Flag determining if the
|
|
162
|
+
* 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.
|
|
160
163
|
*/
|
|
161
|
-
export const
|
|
164
|
+
export const fuseboxEnabledDebug: Getter<boolean> = createNativeFlagGetter('fuseboxEnabledDebug', false);
|
|
162
165
|
/**
|
|
163
|
-
* Flag determining if the
|
|
166
|
+
* 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.
|
|
164
167
|
*/
|
|
165
|
-
export const
|
|
168
|
+
export const fuseboxEnabledRelease: Getter<boolean> = createNativeFlagGetter('fuseboxEnabledRelease', false);
|
|
166
169
|
/**
|
|
167
170
|
* Only enqueue Choreographer calls if there is an ongoing animation, instead of enqueueing every frame.
|
|
168
171
|
*/
|
|
@@ -175,6 +178,10 @@ export const preventDoubleTextMeasure: Getter<boolean> = createNativeFlagGetter(
|
|
|
175
178
|
* Propagate layout direction to Android views.
|
|
176
179
|
*/
|
|
177
180
|
export const setAndroidLayoutDirection: Getter<boolean> = createNativeFlagGetter('setAndroidLayoutDirection', false);
|
|
181
|
+
/**
|
|
182
|
+
* Invoke callbacks immediately on the ReactInstance rather than going through a background thread for synchronization
|
|
183
|
+
*/
|
|
184
|
+
export const useImmediateExecutorInAndroidBridgeless: Getter<boolean> = createNativeFlagGetter('useImmediateExecutorInAndroidBridgeless', false);
|
|
178
185
|
/**
|
|
179
186
|
* When enabled, it uses the modern fork of RuntimeScheduler that allows scheduling tasks with priorities from any thread.
|
|
180
187
|
*/
|
|
@@ -183,6 +190,14 @@ export const useModernRuntimeScheduler: Getter<boolean> = createNativeFlagGetter
|
|
|
183
190
|
* When enabled, the native view configs are used in bridgeless mode.
|
|
184
191
|
*/
|
|
185
192
|
export const useNativeViewConfigsInBridgelessMode: Getter<boolean> = createNativeFlagGetter('useNativeViewConfigsInBridgelessMode', false);
|
|
193
|
+
/**
|
|
194
|
+
* When enabled, cloning shadow nodes within react native will update the reference held by the current JS fiber tree.
|
|
195
|
+
*/
|
|
196
|
+
export const useRuntimeShadowNodeReferenceUpdate: Getter<boolean> = createNativeFlagGetter('useRuntimeShadowNodeReferenceUpdate', false);
|
|
197
|
+
/**
|
|
198
|
+
* When enabled, cloning shadow nodes during layout will update the reference held by the current JS fiber tree.
|
|
199
|
+
*/
|
|
200
|
+
export const useRuntimeShadowNodeReferenceUpdateOnLayout: Getter<boolean> = createNativeFlagGetter('useRuntimeShadowNodeReferenceUpdateOnLayout', false);
|
|
186
201
|
/**
|
|
187
202
|
* When enabled, it uses optimised state reconciliation algorithm.
|
|
188
203
|
*/
|
|
@@ -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<<6922b452333fc62a263bd77d42afbbbe>>
|
|
8
8
|
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
@@ -25,7 +25,7 @@ import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboMod
|
|
|
25
25
|
export interface Spec extends TurboModule {
|
|
26
26
|
+commonTestFlag?: () => boolean;
|
|
27
27
|
+allowCollapsableChildren?: () => boolean;
|
|
28
|
-
+
|
|
28
|
+
+allowRecursiveCommitsWithSynchronousMountOnAndroid?: () => boolean;
|
|
29
29
|
+batchRenderingUpdatesInEventLoop?: () => boolean;
|
|
30
30
|
+destroyFabricSurfacesInReactInstanceManager?: () => boolean;
|
|
31
31
|
+enableBackgroundExecutor?: () => boolean;
|
|
@@ -36,13 +36,16 @@ export interface Spec extends TurboModule {
|
|
|
36
36
|
+enableUIConsistency?: () => boolean;
|
|
37
37
|
+fixStoppedSurfaceRemoveDeleteTreeUIFrameCallbackLeak?: () => boolean;
|
|
38
38
|
+forceBatchingMountItemsOnAndroid?: () => boolean;
|
|
39
|
-
+
|
|
40
|
-
+
|
|
39
|
+
+fuseboxEnabledDebug?: () => boolean;
|
|
40
|
+
+fuseboxEnabledRelease?: () => boolean;
|
|
41
41
|
+lazyAnimationCallbacks?: () => boolean;
|
|
42
42
|
+preventDoubleTextMeasure?: () => boolean;
|
|
43
43
|
+setAndroidLayoutDirection?: () => boolean;
|
|
44
|
+
+useImmediateExecutorInAndroidBridgeless?: () => boolean;
|
|
44
45
|
+useModernRuntimeScheduler?: () => boolean;
|
|
45
46
|
+useNativeViewConfigsInBridgelessMode?: () => boolean;
|
|
47
|
+
+useRuntimeShadowNodeReferenceUpdate?: () => boolean;
|
|
48
|
+
+useRuntimeShadowNodeReferenceUpdateOnLayout?: () => boolean;
|
|
46
49
|
+useStateAlignmentMechanism?: () => boolean;
|
|
47
50
|
}
|
|
48
51
|
|
|
@@ -16,4 +16,6 @@ export interface Spec extends TurboModule {
|
|
|
16
16
|
+queueMicrotask: (callback: () => mixed) => void;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
export default (TurboModuleRegistry.
|
|
19
|
+
export default (TurboModuleRegistry.getEnforcing<Spec>(
|
|
20
|
+
'NativeMicrotasksCxx',
|
|
21
|
+
): Spec);
|