@office-iss/react-native-win32 0.0.0-canary.272 → 0.0.0-canary.273

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.
Files changed (51) hide show
  1. package/.flowconfig +1 -1
  2. package/CHANGELOG.json +16 -1
  3. package/CHANGELOG.md +12 -4
  4. package/Libraries/Animated/AnimatedEvent.js +1 -1
  5. package/Libraries/Animated/animations/Animation.js +1 -1
  6. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  7. package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
  8. package/Libraries/Animated/nodes/AnimatedProps.js +1 -1
  9. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  10. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  11. package/Libraries/Animated/useAnimatedProps.js +3 -3
  12. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +5 -0
  13. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +2 -2
  14. package/Libraries/Components/TextInput/TextInput.d.ts +4 -0
  15. package/Libraries/Components/TextInput/TextInput.flow.js +2 -0
  16. package/Libraries/Components/TextInput/TextInput.js +2 -0
  17. package/Libraries/Components/TextInput/TextInput.win32.js +2 -0
  18. package/Libraries/Components/View/ViewNativeComponent.js +3 -88
  19. package/Libraries/Core/ReactNativeVersion.js +1 -1
  20. package/Libraries/Core/setUpReactDevTools.js +74 -1
  21. package/Libraries/Core/setUpTimers.js +21 -10
  22. package/Libraries/Image/Image.android.js +1 -3
  23. package/Libraries/Image/Image.ios.js +0 -2
  24. package/Libraries/Image/Image.win32.js +0 -2
  25. package/Libraries/Inspector/Inspector.js +1 -0
  26. package/Libraries/Inspector/Inspector.win32.js +1 -0
  27. package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
  28. package/Libraries/Modal/Modal.js +3 -0
  29. package/Libraries/NativeComponent/BaseViewConfig.android.js +65 -0
  30. package/Libraries/ReactNative/AppRegistry.js +1 -1
  31. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -9
  32. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  33. package/Libraries/StyleSheet/StyleSheetTypes.js +1 -1
  34. package/Libraries/Utilities/FocusManager.win32.js +1 -1
  35. package/Libraries/Utilities/useMergeRefs.js +26 -7
  36. package/index.js +1 -1
  37. package/index.win32.js +1 -1
  38. package/jest/setup.js +1 -0
  39. package/overrides.json +8 -8
  40. package/package.json +12 -12
  41. package/src/private/animated/NativeAnimatedHelper.js +4 -4
  42. package/src/private/animated/NativeAnimatedHelper.win32.js +4 -4
  43. package/src/private/animated/useAnimatedPropsMemo.js +0 -1
  44. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -1
  45. package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -11
  46. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -3
  47. package/src/private/webapis/performance/EventTiming.js +1 -1
  48. package/src/private/webapis/performance/Performance.js +36 -15
  49. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  50. package/src/private/webapis/performance/specs/NativePerformance.js +18 -2
  51. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +32 -12
@@ -294,6 +294,71 @@ const validAttributesForNonEventProps = {
294
294
  style: ReactNativeStyleAttributes,
295
295
 
296
296
  experimental_layoutConformance: true,
297
+
298
+ // ReactClippingViewManager @ReactProps
299
+ removeClippedSubviews: true,
300
+
301
+ // ReactViewManager @ReactProps
302
+ accessible: true,
303
+ hasTVPreferredFocus: true,
304
+ nextFocusDown: true,
305
+ nextFocusForward: true,
306
+ nextFocusLeft: true,
307
+ nextFocusRight: true,
308
+ nextFocusUp: true,
309
+
310
+ borderRadius: true,
311
+ borderTopLeftRadius: true,
312
+ borderTopRightRadius: true,
313
+ borderBottomRightRadius: true,
314
+ borderBottomLeftRadius: true,
315
+ borderTopStartRadius: true,
316
+ borderTopEndRadius: true,
317
+ borderBottomStartRadius: true,
318
+ borderBottomEndRadius: true,
319
+ borderEndEndRadius: true,
320
+ borderEndStartRadius: true,
321
+ borderStartEndRadius: true,
322
+ borderStartStartRadius: true,
323
+ borderStyle: true,
324
+ hitSlop: true,
325
+ pointerEvents: true,
326
+ nativeBackgroundAndroid: true,
327
+ nativeForegroundAndroid: true,
328
+ needsOffscreenAlphaCompositing: true,
329
+
330
+ borderColor: {
331
+ process: require('../StyleSheet/processColor').default,
332
+ },
333
+ borderLeftColor: {
334
+ process: require('../StyleSheet/processColor').default,
335
+ },
336
+ borderRightColor: {
337
+ process: require('../StyleSheet/processColor').default,
338
+ },
339
+ borderTopColor: {
340
+ process: require('../StyleSheet/processColor').default,
341
+ },
342
+ borderBottomColor: {
343
+ process: require('../StyleSheet/processColor').default,
344
+ },
345
+ borderStartColor: {
346
+ process: require('../StyleSheet/processColor').default,
347
+ },
348
+ borderEndColor: {
349
+ process: require('../StyleSheet/processColor').default,
350
+ },
351
+ borderBlockColor: {
352
+ process: require('../StyleSheet/processColor').default,
353
+ },
354
+ borderBlockEndColor: {
355
+ process: require('../StyleSheet/processColor').default,
356
+ },
357
+ borderBlockStartColor: {
358
+ process: require('../StyleSheet/processColor').default,
359
+ },
360
+ focusable: true,
361
+ backfaceVisibility: true,
297
362
  };
298
363
 
299
364
  // Props for bubbling and direct events
@@ -13,8 +13,8 @@ import type {RootTag} from '../Types/RootTagTypes';
13
13
  import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
14
14
  import type {DisplayModeType} from './DisplayMode';
15
15
 
16
- import registerCallableModule from '../Core/registerCallableModule';
17
16
  import BugReporting from '../BugReporting/BugReporting';
17
+ import registerCallableModule from '../Core/registerCallableModule';
18
18
  import createPerformanceLogger from '../Utilities/createPerformanceLogger';
19
19
  import infoLog from '../Utilities/infoLog';
20
20
  import SceneTracker from '../Utilities/SceneTracker';
@@ -7,7 +7,7 @@
7
7
  * @noformat
8
8
  * @nolint
9
9
  * @flow strict
10
- * @generated SignedSource<<9e6c8931d3b0c36d35ad5da90b721b85>>
10
+ * @generated SignedSource<<448b89d0a61a392d9c1eb921f7d51d37>>
11
11
  */
12
12
 
13
13
  import type {
@@ -140,13 +140,6 @@ declare const ensureNativeMethodsAreSynced: NativeMethods;
140
140
  export type HostInstance = NativeMethods;
141
141
  export type HostComponent<Config> = AbstractComponent<Config, HostInstance>;
142
142
 
143
- type SecretInternalsType = {
144
- computeComponentStackForErrorReporting(tag: number): string,
145
- // TODO (bvaughn) Decide which additional types to expose here?
146
- // And how much information to fill in for the above types.
147
- ...
148
- };
149
-
150
143
  type InspectorDataProps = $ReadOnly<{
151
144
  [propName: string]: string,
152
145
  ...
@@ -234,7 +227,6 @@ export type ReactNativeType = {
234
227
  unmountComponentAtNode(containerTag: number): void,
235
228
  unmountComponentAtNodeAndRemoveContainer(containerTag: number): void,
236
229
  +unstable_batchedUpdates: <T>(fn: (T) => void, bookkeeping: T) => void,
237
- +__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: SecretInternalsType,
238
230
  ...
239
231
  };
240
232
 
@@ -56,7 +56,7 @@ export interface FlexStyle {
56
56
  borderWidth?: number | undefined;
57
57
  bottom?: DimensionValue | undefined;
58
58
  boxSizing?: 'border-box' | 'content-box' | undefined;
59
- display?: 'none' | 'flex' | undefined;
59
+ display?: 'none' | 'flex' | 'contents' | undefined;
60
60
  end?: DimensionValue | undefined;
61
61
  flex?: number | undefined;
62
62
  flexBasis?: DimensionValue | undefined;
@@ -58,7 +58,7 @@ type ____LayoutStyle_Internal = $ReadOnly<{
58
58
  * It works similarly to `display` in CSS, but only support 'flex' and 'none'.
59
59
  * 'flex' is the default.
60
60
  */
61
- display?: 'none' | 'flex',
61
+ display?: 'none' | 'flex' | 'contents',
62
62
 
63
63
  /** `width` sets the width of this component.
64
64
  *
@@ -18,7 +18,7 @@ class FocusManager {
18
18
  // This function takes in a ref to a React Component and a bool value. If setWindowFocus = true, call aggressive focus.
19
19
  // Else, call polite focus
20
20
 
21
- static focus(ref: React.Ref<any>, setWindowFocus: boolean) {
21
+ static focus(ref: React.RefObject<any>, setWindowFocus: boolean) {
22
22
  if (ref) {
23
23
  if (setWindowFocus) {
24
24
  UIManager.dispatchViewManagerCommand(
@@ -8,6 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
+ import useRefEffect from './useRefEffect';
11
12
  import * as React from 'react';
12
13
  import {useCallback} from 'react';
13
14
 
@@ -22,19 +23,37 @@ import {useCallback} from 'react';
22
23
  */
23
24
  export default function useMergeRefs<Instance>(
24
25
  ...refs: $ReadOnlyArray<?React.RefSetter<Instance>>
25
- ): (Instance | null) => void {
26
- return useCallback(
27
- (current: Instance | null) => {
28
- for (const ref of refs) {
29
- if (ref != null) {
26
+ ): React.RefSetter<Instance> {
27
+ const refEffect = useCallback(
28
+ (current: Instance) => {
29
+ const cleanups: $ReadOnlyArray<void | (() => void)> = refs.map(ref => {
30
+ if (ref == null) {
31
+ return undefined;
32
+ } else {
30
33
  if (typeof ref === 'function') {
31
- ref(current);
34
+ // $FlowIssue[incompatible-type] - Flow does not understand ref cleanup.
35
+ const cleanup: void | (() => void) = ref(current);
36
+ return typeof cleanup === 'function'
37
+ ? cleanup
38
+ : () => {
39
+ ref(null);
40
+ };
32
41
  } else {
33
42
  ref.current = current;
43
+ return () => {
44
+ ref.current = null;
45
+ };
34
46
  }
35
47
  }
36
- }
48
+ });
49
+
50
+ return () => {
51
+ for (const cleanup of cleanups) {
52
+ cleanup?.();
53
+ }
54
+ };
37
55
  },
38
56
  [...refs], // eslint-disable-line react-hooks/exhaustive-deps
39
57
  );
58
+ return useRefEffect(refEffect);
40
59
  }
package/index.js CHANGED
@@ -88,7 +88,6 @@ import typeof UTFSequence from './Libraries/UTFSequence';
88
88
  import typeof * as Appearance from './Libraries/Utilities/Appearance';
89
89
  import typeof BackHandler from './Libraries/Utilities/BackHandler';
90
90
  import typeof DeviceInfo from './Libraries/Utilities/DeviceInfo';
91
- import typeof DevMenu from './src/private/devmenu/DevMenu';
92
91
  import typeof DevSettings from './Libraries/Utilities/DevSettings';
93
92
  import typeof Dimensions from './Libraries/Utilities/Dimensions';
94
93
  import typeof PixelRatio from './Libraries/Utilities/PixelRatio';
@@ -97,6 +96,7 @@ import typeof useColorScheme from './Libraries/Utilities/useColorScheme';
97
96
  import typeof useWindowDimensions from './Libraries/Utilities/useWindowDimensions';
98
97
  import typeof Vibration from './Libraries/Vibration/Vibration';
99
98
  import typeof YellowBox from './Libraries/YellowBox/YellowBoxDeprecated';
99
+ import typeof DevMenu from './src/private/devmenu/DevMenu';
100
100
 
101
101
  const warnOnce = require('./Libraries/Utilities/warnOnce');
102
102
  const invariant = require('invariant');
package/index.win32.js CHANGED
@@ -88,7 +88,6 @@ import typeof UTFSequence from './Libraries/UTFSequence';
88
88
  import typeof * as Appearance from './Libraries/Utilities/Appearance';
89
89
  import typeof BackHandler from './Libraries/Utilities/BackHandler';
90
90
  import typeof DeviceInfo from './Libraries/Utilities/DeviceInfo';
91
- import typeof DevMenu from './src/private/devmenu/DevMenu';
92
91
  import typeof DevSettings from './Libraries/Utilities/DevSettings';
93
92
  import typeof Dimensions from './Libraries/Utilities/Dimensions';
94
93
  import typeof PixelRatio from './Libraries/Utilities/PixelRatio';
@@ -97,6 +96,7 @@ import typeof useColorScheme from './Libraries/Utilities/useColorScheme';
97
96
  import typeof useWindowDimensions from './Libraries/Utilities/useWindowDimensions';
98
97
  import typeof Vibration from './Libraries/Vibration/Vibration';
99
98
  import typeof YellowBox from './Libraries/YellowBox/YellowBoxDeprecated';
99
+ import typeof DevMenu from './src/private/devmenu/DevMenu';
100
100
 
101
101
  const warnOnce = require('./Libraries/Utilities/warnOnce');
102
102
  const invariant = require('invariant');
package/jest/setup.js CHANGED
@@ -146,6 +146,7 @@ jest
146
146
  remove: jest.fn(),
147
147
  })),
148
148
  announceForAccessibility: jest.fn(),
149
+ announceForAccessibilityWithOptions: jest.fn(),
149
150
  isAccessibilityServiceEnabled: jest.fn(() => Promise.resolve(false)),
150
151
  isBoldTextEnabled: jest.fn(() => Promise.resolve(false)),
151
152
  isGrayscaleEnabled: jest.fn(() => Promise.resolve(false)),
package/overrides.json CHANGED
@@ -7,19 +7,19 @@
7
7
  "**/__snapshots__/**",
8
8
  "src-win/rntypes/**"
9
9
  ],
10
- "baseVersion": "0.77.0-nightly-20241015-3485e9ed8",
10
+ "baseVersion": "0.77.0-nightly-20241020-e7a3f479f",
11
11
  "overrides": [
12
12
  {
13
13
  "type": "derived",
14
14
  "file": ".flowconfig",
15
15
  "baseFile": ".flowconfig",
16
- "baseHash": "fa800520804222b3f944f7ffbb6a82f5ad89dc76"
16
+ "baseHash": "d824685eb9983c3aecb6d8207eeb0312f3d5a743"
17
17
  },
18
18
  {
19
19
  "type": "derived",
20
20
  "file": "src-win/index.win32.js",
21
21
  "baseFile": "packages/react-native/index.js",
22
- "baseHash": "ad455e241e35ebd718a6304f3de9d04c1f9e4f2b"
22
+ "baseHash": "2c80856075b7979d9119fb5e2b4b66b43456c068"
23
23
  },
24
24
  {
25
25
  "type": "platform",
@@ -109,7 +109,7 @@
109
109
  "type": "derived",
110
110
  "file": "src-win/Libraries/Components/TextInput/TextInput.win32.js",
111
111
  "baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
112
- "baseHash": "d7364ef8dd1c0bc25cc189d135e846522b02b3a7"
112
+ "baseHash": "87f676e0bfd031b3dd8c79cf78b64af3c525b151"
113
113
  },
114
114
  {
115
115
  "type": "patch",
@@ -232,7 +232,7 @@
232
232
  "type": "derived",
233
233
  "file": "src-win/Libraries/Image/Image.win32.js",
234
234
  "baseFile": "packages/react-native/Libraries/Image/Image.ios.js",
235
- "baseHash": "e5cd104f5060ad354072889937ea92d508a32490",
235
+ "baseHash": "a5abee6de7dca3cb043b834925de3f6f0443c738",
236
236
  "issue": 4320
237
237
  },
238
238
  {
@@ -286,7 +286,7 @@
286
286
  "type": "patch",
287
287
  "file": "src-win/Libraries/Inspector/Inspector.win32.js",
288
288
  "baseFile": "packages/react-native/Libraries/Inspector/Inspector.js",
289
- "baseHash": "ac4d1824877906651f2d82ab7910dda3ecb2bd80"
289
+ "baseHash": "ad3ed5cb941f304f5751c6d12274ffe81753162c"
290
290
  },
291
291
  {
292
292
  "type": "patch",
@@ -497,13 +497,13 @@
497
497
  "type": "copy",
498
498
  "file": "src-win/Libraries/Utilities/useMergeRefs.js",
499
499
  "baseFile": "packages/react-native/Libraries/Utilities/useMergeRefs.js",
500
- "baseHash": "1f1ca637132e6e0fe1549ba520d98508269ca2bd"
500
+ "baseHash": "4ba42e1b43ef55a1a9e3095336979fa712f4dc8d"
501
501
  },
502
502
  {
503
503
  "type": "patch",
504
504
  "file": "src-win/src/private/animated/NativeAnimatedHelper.win32.js",
505
505
  "baseFile": "packages/react-native/src/private/animated/NativeAnimatedHelper.js",
506
- "baseHash": "96fb410d7d408c49297f9f99a760f954264bce91",
506
+ "baseHash": "8c67d57575cccb7281b15ca2591e4edf5c5c36dd",
507
507
  "issue": 11041
508
508
  },
509
509
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@office-iss/react-native-win32",
3
- "version": "0.0.0-canary.272",
3
+ "version": "0.0.0-canary.273",
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": "15.0.0-alpha.2",
31
31
  "@react-native-community/cli-platform-ios": "15.0.0-alpha.2",
32
32
  "@react-native/assets": "1.0.0",
33
- "@react-native/assets-registry": "0.77.0-nightly-20241015-3485e9ed8",
34
- "@react-native/codegen": "0.77.0-nightly-20241015-3485e9ed8",
35
- "@react-native/community-cli-plugin": "0.77.0-nightly-20241015-3485e9ed8",
36
- "@react-native/gradle-plugin": "0.77.0-nightly-20241015-3485e9ed8",
37
- "@react-native/js-polyfills": "0.77.0-nightly-20241015-3485e9ed8",
38
- "@react-native/normalize-colors": "0.77.0-nightly-20241015-3485e9ed8",
39
- "@react-native/virtualized-lists": "0.77.0-nightly-20241015-3485e9ed8",
33
+ "@react-native/assets-registry": "0.77.0-nightly-20241020-e7a3f479f",
34
+ "@react-native/codegen": "0.77.0-nightly-20241020-e7a3f479f",
35
+ "@react-native/community-cli-plugin": "0.77.0-nightly-20241020-e7a3f479f",
36
+ "@react-native/gradle-plugin": "0.77.0-nightly-20241020-e7a3f479f",
37
+ "@react-native/js-polyfills": "0.77.0-nightly-20241020-e7a3f479f",
38
+ "@react-native/normalize-colors": "0.77.0-nightly-20241020-e7a3f479f",
39
+ "@react-native/virtualized-lists": "0.77.0-nightly-20241020-e7a3f479f",
40
40
  "abort-controller": "^3.0.0",
41
41
  "anser": "^1.4.9",
42
42
  "ansi-regex": "^5.0.0",
@@ -60,7 +60,7 @@
60
60
  "pretty-format": "^29.7.0",
61
61
  "promise": "^8.3.0",
62
62
  "react-clone-referenced-element": "^1.0.1",
63
- "react-devtools-core": "^6.0.0",
63
+ "react-devtools-core": "^6.0.1",
64
64
  "react-refresh": "^0.14.0",
65
65
  "react-shallow-renderer": "^16.15.0",
66
66
  "regenerator-runtime": "^0.13.2",
@@ -85,19 +85,19 @@
85
85
  "@types/prop-types": "15.7.1",
86
86
  "@types/react": "^18.2.6",
87
87
  "eslint": "^8.19.0",
88
- "flow-bin": "^0.245.2",
88
+ "flow-bin": "^0.250.0",
89
89
  "jscodeshift": "^0.14.0",
90
90
  "just-scripts": "^1.3.3",
91
91
  "prettier": "2.8.8",
92
92
  "react": "19.0.0-rc-fb9a90fa48-20240614",
93
- "react-native": "0.77.0-nightly-20241015-3485e9ed8",
93
+ "react-native": "0.77.0-nightly-20241020-e7a3f479f",
94
94
  "react-native-platform-override": "^1.9.49",
95
95
  "typescript": "5.0.4"
96
96
  },
97
97
  "peerDependencies": {
98
98
  "@types/react": "^18.2.6",
99
99
  "react": "^19.0.0-rc-fb9a90fa48-20240614",
100
- "react-native": "0.77.0-nightly-20241015-3485e9ed8"
100
+ "react-native": "0.77.0-nightly-20241020-e7a3f479f"
101
101
  },
102
102
  "beachball": {
103
103
  "defaultNpmTag": "canary",
@@ -8,7 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {EventSubscription} from '../../../Libraries/vendor/emitter/EventEmitter';
12
11
  import type {EventConfig} from '../../../Libraries/Animated/AnimatedEvent';
13
12
  import type {
14
13
  AnimationConfig,
@@ -18,13 +17,14 @@ import type {
18
17
  AnimatedNodeConfig,
19
18
  EventMapping,
20
19
  } from '../../../Libraries/Animated/NativeAnimatedModule';
20
+ import type {EventSubscription} from '../../../Libraries/vendor/emitter/EventEmitter';
21
21
 
22
- import * as ReactNativeFeatureFlags from '../featureflags/ReactNativeFeatureFlags';
22
+ import NativeAnimatedNonTurboModule from '../../../Libraries/Animated/NativeAnimatedModule';
23
+ import NativeAnimatedTurboModule from '../../../Libraries/Animated/NativeAnimatedTurboModule';
23
24
  import NativeEventEmitter from '../../../Libraries/EventEmitter/NativeEventEmitter';
24
25
  import RCTDeviceEventEmitter from '../../../Libraries/EventEmitter/RCTDeviceEventEmitter';
25
26
  import Platform from '../../../Libraries/Utilities/Platform';
26
- import NativeAnimatedNonTurboModule from '../../../Libraries/Animated/NativeAnimatedModule';
27
- import NativeAnimatedTurboModule from '../../../Libraries/Animated/NativeAnimatedTurboModule';
27
+ import * as ReactNativeFeatureFlags from '../featureflags/ReactNativeFeatureFlags';
28
28
  import invariant from 'invariant';
29
29
  import nullthrows from 'nullthrows';
30
30
 
@@ -8,7 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {EventSubscription} from '../../../Libraries/vendor/emitter/EventEmitter';
12
11
  import type {EventConfig} from '../../../Libraries/Animated/AnimatedEvent';
13
12
  import type {
14
13
  AnimationConfig,
@@ -18,13 +17,14 @@ import type {
18
17
  AnimatedNodeConfig,
19
18
  EventMapping,
20
19
  } from '../../../Libraries/Animated/NativeAnimatedModule';
20
+ import type {EventSubscription} from '../../../Libraries/vendor/emitter/EventEmitter';
21
21
 
22
- import * as ReactNativeFeatureFlags from '../featureflags/ReactNativeFeatureFlags';
22
+ import NativeAnimatedNonTurboModule from '../../../Libraries/Animated/NativeAnimatedModule';
23
+ import NativeAnimatedTurboModule from '../../../Libraries/Animated/NativeAnimatedTurboModule';
23
24
  import NativeEventEmitter from '../../../Libraries/EventEmitter/NativeEventEmitter';
24
25
  import RCTDeviceEventEmitter from '../../../Libraries/EventEmitter/RCTDeviceEventEmitter';
25
26
  import Platform from '../../../Libraries/Utilities/Platform';
26
- import NativeAnimatedNonTurboModule from '../../../Libraries/Animated/NativeAnimatedModule';
27
- import NativeAnimatedTurboModule from '../../../Libraries/Animated/NativeAnimatedTurboModule';
27
+ import * as ReactNativeFeatureFlags from '../featureflags/ReactNativeFeatureFlags';
28
28
  import invariant from 'invariant';
29
29
  import nullthrows from 'nullthrows';
30
30
 
@@ -17,7 +17,6 @@ import {AnimatedEvent} from '../../../Libraries/Animated/AnimatedEvent';
17
17
  import AnimatedNode from '../../../Libraries/Animated/nodes/AnimatedNode';
18
18
  import {isPlainObject} from '../../../Libraries/Animated/nodes/AnimatedObject';
19
19
  import flattenStyle from '../../../Libraries/StyleSheet/flattenStyle';
20
-
21
20
  import nullthrows from 'nullthrows';
22
21
  import {useMemo, useState} from 'react';
23
22
 
@@ -10,9 +10,10 @@
10
10
  */
11
11
 
12
12
  import type {ViewProps} from '../../../Libraries/Components/View/ViewPropTypes';
13
- import Platform from '../../../Libraries/Utilities/Platform';
13
+
14
14
  import View from '../../../Libraries/Components/View/View';
15
15
  import UIManager from '../../../Libraries/ReactNative/UIManager';
16
+ import Platform from '../../../Libraries/Utilities/Platform';
16
17
  import * as React from 'react';
17
18
 
18
19
  const exported: React.AbstractComponent<
@@ -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<<1ef57002084a2e38a69b43b7d4d557a9>>
7
+ * @generated SignedSource<<1c91049b99046065031ca8b826ab20a6>>
8
8
  * @flow strict
9
9
  */
10
10
 
@@ -51,9 +51,11 @@ export type ReactNativeFeatureFlagsJsOnlyOverrides = OverridesFor<ReactNativeFea
51
51
  export type ReactNativeFeatureFlags = {
52
52
  ...ReactNativeFeatureFlagsJsOnly,
53
53
  commonTestFlag: Getter<boolean>,
54
+ commonTestFlagWithoutNativeImplementation: Getter<boolean>,
54
55
  allowRecursiveCommitsWithSynchronousMountOnAndroid: Getter<boolean>,
55
56
  batchRenderingUpdatesInEventLoop: Getter<boolean>,
56
57
  completeReactInstanceCreationOnBgThreadOnAndroid: Getter<boolean>,
58
+ disableEventLoopOnBridgeless: Getter<boolean>,
57
59
  enableAlignItemsBaselineOnFabricIOS: Getter<boolean>,
58
60
  enableAndroidLineHeightCentering: Getter<boolean>,
59
61
  enableBridgelessArchitecture: Getter<boolean>,
@@ -78,7 +80,6 @@ export type ReactNativeFeatureFlags = {
78
80
  enableUIConsistency: Getter<boolean>,
79
81
  enableViewRecycling: Getter<boolean>,
80
82
  excludeYogaFromRawProps: Getter<boolean>,
81
- fetchImagesInViewPreallocation: Getter<boolean>,
82
83
  fixMappingOfEventPrioritiesBetweenFabricAndReact: Getter<boolean>,
83
84
  fixMountingCoordinatorReportedPendingTransactionsOnAndroid: Getter<boolean>,
84
85
  forceBatchingMountItemsOnAndroid: Getter<boolean>,
@@ -87,7 +88,6 @@ export type ReactNativeFeatureFlags = {
87
88
  initEagerTurboModulesOnNativeModulesQueueAndroid: Getter<boolean>,
88
89
  lazyAnimationCallbacks: Getter<boolean>,
89
90
  loadVectorDrawablesOnImages: Getter<boolean>,
90
- removeNestedCallsToDispatchMountItemsOnAndroid: Getter<boolean>,
91
91
  setAndroidLayoutDirection: Getter<boolean>,
92
92
  traceTurboModulePromiseRejectionsOnAndroid: Getter<boolean>,
93
93
  useFabricInterop: Getter<boolean>,
@@ -190,6 +190,10 @@ export const useRefsForTextInputState: Getter<boolean> = createJavaScriptFlagGet
190
190
  * Common flag for testing. Do NOT modify.
191
191
  */
192
192
  export const commonTestFlag: Getter<boolean> = createNativeFlagGetter('commonTestFlag', false);
193
+ /**
194
+ * Common flag for testing (without native implementation). Do NOT modify.
195
+ */
196
+ export const commonTestFlagWithoutNativeImplementation: Getter<boolean> = createNativeFlagGetter('commonTestFlagWithoutNativeImplementation', false);
193
197
  /**
194
198
  * Adds support for recursively processing commits that mount synchronously (Android only).
195
199
  */
@@ -202,6 +206,10 @@ export const batchRenderingUpdatesInEventLoop: Getter<boolean> = createNativeFla
202
206
  * Do not wait for a main-thread dispatch to complete init to start executing work on the JS thread on Android
203
207
  */
204
208
  export const completeReactInstanceCreationOnBgThreadOnAndroid: Getter<boolean> = createNativeFlagGetter('completeReactInstanceCreationOnBgThreadOnAndroid', false);
209
+ /**
210
+ * The bridgeless architecture enables the event loop by default. This feature flag allows us to force disabling it in specific instances.
211
+ */
212
+ export const disableEventLoopOnBridgeless: Getter<boolean> = createNativeFlagGetter('disableEventLoopOnBridgeless', false);
205
213
  /**
206
214
  * Kill-switch to turn off support for aling-items:baseline on Fabric iOS.
207
215
  */
@@ -298,10 +306,6 @@ export const enableViewRecycling: Getter<boolean> = createNativeFlagGetter('enab
298
306
  * When enabled, rawProps in Props will not include Yoga specific props.
299
307
  */
300
308
  export const excludeYogaFromRawProps: Getter<boolean> = createNativeFlagGetter('excludeYogaFromRawProps', false);
301
- /**
302
- * Start image fetching during view preallocation instead of waiting for layout pass
303
- */
304
- export const fetchImagesInViewPreallocation: Getter<boolean> = createNativeFlagGetter('fetchImagesInViewPreallocation', false);
305
309
  /**
306
310
  * Uses the default event priority instead of the discreet event priority by default when dispatching events from Fabric to React.
307
311
  */
@@ -334,10 +338,6 @@ export const lazyAnimationCallbacks: Getter<boolean> = createNativeFlagGetter('l
334
338
  * Adds support for loading vector drawable assets in the Image component (only on Android)
335
339
  */
336
340
  export const loadVectorDrawablesOnImages: Getter<boolean> = createNativeFlagGetter('loadVectorDrawablesOnImages', false);
337
- /**
338
- * Removes nested calls to MountItemDispatcher.dispatchMountItems on Android, so we do less work per frame on the UI thread.
339
- */
340
- export const removeNestedCallsToDispatchMountItemsOnAndroid: Getter<boolean> = createNativeFlagGetter('removeNestedCallsToDispatchMountItemsOnAndroid', false);
341
341
  /**
342
342
  * Propagate layout direction to Android views.
343
343
  */
@@ -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<<e6477fcd9bf64a5c84496dfb55ae3700>>
7
+ * @generated SignedSource<<255e1fec50a4c211c3cc814eaf92ee9b>>
8
8
  * @flow strict
9
9
  */
10
10
 
@@ -24,9 +24,11 @@ import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboMod
24
24
 
25
25
  export interface Spec extends TurboModule {
26
26
  +commonTestFlag?: () => boolean;
27
+ +commonTestFlagWithoutNativeImplementation?: () => boolean;
27
28
  +allowRecursiveCommitsWithSynchronousMountOnAndroid?: () => boolean;
28
29
  +batchRenderingUpdatesInEventLoop?: () => boolean;
29
30
  +completeReactInstanceCreationOnBgThreadOnAndroid?: () => boolean;
31
+ +disableEventLoopOnBridgeless?: () => boolean;
30
32
  +enableAlignItemsBaselineOnFabricIOS?: () => boolean;
31
33
  +enableAndroidLineHeightCentering?: () => boolean;
32
34
  +enableBridgelessArchitecture?: () => boolean;
@@ -51,7 +53,6 @@ export interface Spec extends TurboModule {
51
53
  +enableUIConsistency?: () => boolean;
52
54
  +enableViewRecycling?: () => boolean;
53
55
  +excludeYogaFromRawProps?: () => boolean;
54
- +fetchImagesInViewPreallocation?: () => boolean;
55
56
  +fixMappingOfEventPrioritiesBetweenFabricAndReact?: () => boolean;
56
57
  +fixMountingCoordinatorReportedPendingTransactionsOnAndroid?: () => boolean;
57
58
  +forceBatchingMountItemsOnAndroid?: () => boolean;
@@ -60,7 +61,6 @@ export interface Spec extends TurboModule {
60
61
  +initEagerTurboModulesOnNativeModulesQueueAndroid?: () => boolean;
61
62
  +lazyAnimationCallbacks?: () => boolean;
62
63
  +loadVectorDrawablesOnImages?: () => boolean;
63
- +removeNestedCallsToDispatchMountItemsOnAndroid?: () => boolean;
64
64
  +setAndroidLayoutDirection?: () => boolean;
65
65
  +traceTurboModulePromiseRejectionsOnAndroid?: () => boolean;
66
66
  +useFabricInterop?: () => boolean;
@@ -16,8 +16,8 @@ import type {
16
16
  } from './PerformanceEntry';
17
17
 
18
18
  import {PerformanceEntry} from './PerformanceEntry';
19
- import {warnNoNativePerformance} from './Utilities';
20
19
  import NativePerformance from './specs/NativePerformance';
20
+ import {warnNoNativePerformance} from './Utilities';
21
21
 
22
22
  export type PerformanceEventTimingJSON = {
23
23
  ...PerformanceEntryJSON,