@office-iss/react-native-win32 0.0.0-canary.299 → 0.0.0-canary.300

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 (99) hide show
  1. package/.flowconfig +3 -6
  2. package/CHANGELOG.json +46 -1
  3. package/CHANGELOG.md +19 -6
  4. package/IntegrationTests/IntegrationTestsApp.js +1 -1
  5. package/Libraries/Alert/RCTAlertManager.android.js +2 -0
  6. package/Libraries/Animated/Animated.d.ts +2 -0
  7. package/Libraries/Animated/AnimatedImplementation.js +2 -0
  8. package/Libraries/Animated/Easing.js +2 -0
  9. package/Libraries/Animated/animations/Animation.js +14 -14
  10. package/Libraries/Animated/animations/TimingAnimation.js +2 -0
  11. package/Libraries/Animated/nodes/AnimatedNode.js +7 -7
  12. package/Libraries/Animated/nodes/AnimatedObject.js +7 -7
  13. package/Libraries/Animated/nodes/AnimatedProps.js +30 -30
  14. package/Libraries/Animated/nodes/AnimatedStyle.js +17 -17
  15. package/Libraries/Animated/nodes/AnimatedTransform.js +5 -5
  16. package/Libraries/Animated/nodes/AnimatedValue.js +18 -18
  17. package/Libraries/AppState/AppState.js +3 -3
  18. package/Libraries/BatchedBridge/MessageQueue.js +4 -0
  19. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +1 -1
  20. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +1 -1
  21. package/Libraries/Components/Pressable/Pressable.js +10 -1
  22. package/Libraries/Components/Pressable/Pressable.win32.js +9 -0
  23. package/Libraries/Components/StatusBar/StatusBar.js +2 -2
  24. package/Libraries/Components/Switch/Switch.js +1 -1
  25. package/Libraries/Components/TextInput/TextInput.js +2 -2
  26. package/Libraries/Components/TextInput/TextInput.win32.js +2 -1
  27. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  28. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  29. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  30. package/Libraries/Components/Touchable/TouchableOpacity.js +1 -1
  31. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  32. package/Libraries/Components/View/View.js +86 -168
  33. package/Libraries/Core/ReactNativeVersion.js +37 -10
  34. package/Libraries/Core/Timers/queueMicrotask.js +1 -0
  35. package/Libraries/Core/setUpPerformance.js +2 -1
  36. package/Libraries/Interaction/InteractionManager.js +118 -171
  37. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -0
  38. package/Libraries/LogBox/Data/LogBoxData.js +4 -1
  39. package/Libraries/Modal/Modal.js +1 -1
  40. package/Libraries/NativeComponent/ViewConfig.js +1 -1
  41. package/Libraries/Network/XMLHttpRequest.js +18 -5
  42. package/Libraries/Pressability/Pressability.js +1 -1
  43. package/Libraries/Pressability/Pressability.win32.js +1 -1
  44. package/Libraries/ReactNative/AppRegistryImpl.js +4 -2
  45. package/Libraries/Renderer/implementations/ReactFabric-dev.js +38 -35
  46. package/Libraries/Renderer/implementations/ReactFabric-prod.js +51 -22
  47. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +54 -24
  48. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +36 -33
  49. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5 -5
  50. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5 -5
  51. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  52. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  53. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  54. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  55. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  56. package/Libraries/Utilities/useMergeRefs.js +1 -1
  57. package/Libraries/promiseRejectionTrackingOptions.js +17 -31
  58. package/flow/HermesInternalType.js +114 -0
  59. package/flow/Stringish.js +14 -0
  60. package/flow/bom.js.flow +554 -0
  61. package/flow/console.js +49 -0
  62. package/flow/cssom.js.flow +575 -0
  63. package/flow/dom.js.flow +6289 -0
  64. package/flow/global.js +88 -0
  65. package/flow/prettier.js.flow +14 -0
  66. package/flow/streams.js.flow +140 -0
  67. package/index.js +5 -2
  68. package/index.win32.js +6 -2
  69. package/jest/mockComponent.js +1 -1
  70. package/jest/setup.js +11 -0
  71. package/overrides.json +11 -11
  72. package/package.json +19 -19
  73. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  74. package/src/private/animated/NativeAnimatedHelper.win32.js +8 -1
  75. package/src/private/animated/createAnimatedPropsHook.js +2 -49
  76. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -48
  77. package/src/private/components/virtualview/VirtualView.js +22 -6
  78. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +93 -0
  79. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -2
  80. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -51
  81. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +19 -0
  82. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -5
  83. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  84. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  85. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  86. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  87. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +19 -74
  88. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +0 -4
  89. package/src/private/webapis/performance/EventTiming.js +5 -9
  90. package/src/private/webapis/performance/Performance.js +251 -191
  91. package/src/private/webapis/performance/PerformanceObserver.js +8 -29
  92. package/src/private/webapis/performance/UserTiming.js +24 -23
  93. package/src/private/webapis/performance/UserTimingExtensibility.js.flow +38 -0
  94. package/src/private/webapis/performance/internals/Utilities.js +9 -0
  95. package/src/private/webapis/performance/specs/NativePerformance.js +19 -33
  96. package/src/private/webapis/structuredClone/structuredClone.js +1 -1
  97. package/Libraries/Interaction/InteractionManagerStub.js +0 -184
  98. package/Libraries/Interaction/TaskQueue.js +0 -197
  99. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -31
package/flow/global.js ADDED
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ /**
12
+ * `global` is a object containing all the global variables for React Native.
13
+ *
14
+ * NOTE: Consider cross-platform as well as JS environments compatibility
15
+ * when defining the types here. Consider both presence (`?`) as well as
16
+ * writeability (`+`) when defining types.
17
+ */
18
+ // $FlowFixMe[libdef-override]
19
+ declare var global: {
20
+ // setUpGlobals
21
+ +window: typeof global,
22
+ +self: typeof global,
23
+ +process: {
24
+ +env: {
25
+ +NODE_ENV: 'development' | 'production',
26
+ },
27
+ +argv?: $ReadOnlyArray<string>,
28
+ },
29
+
30
+ // setUpPerformance
31
+ +performance: Performance,
32
+
33
+ // setUpXHR
34
+ +XMLHttpRequest: typeof XMLHttpRequest,
35
+ +FormData: typeof FormData,
36
+ +fetch: typeof fetch,
37
+ +Headers: typeof Headers,
38
+ +Request: typeof Request,
39
+ +Response: typeof Response,
40
+ +WebSocket: typeof WebSocket,
41
+ +Blob: typeof Blob,
42
+ +File: typeof File,
43
+ +FileReader: typeof FileReader,
44
+ +URL: typeof URL,
45
+ +URLSearchParams: typeof URLSearchParams,
46
+ +AbortController: typeof AbortController,
47
+ +AbortSignal: typeof AbortSignal,
48
+
49
+ // setUpAlert
50
+ +alert: typeof alert,
51
+
52
+ // setUpNavigator
53
+ +navigator: {
54
+ +product: 'ReactNative',
55
+ +appName?: ?string,
56
+ ...
57
+ },
58
+
59
+ // setUpTimers
60
+ +setInterval: typeof setInterval,
61
+ +clearInterval: typeof clearInterval,
62
+ +setTimeout: typeof setTimeout,
63
+ +clearTimeout: typeof clearTimeout,
64
+ +requestAnimationFrame: typeof requestAnimationFrame,
65
+ +cancelAnimationFrame: typeof cancelAnimationFrame,
66
+ +requestIdleCallback: typeof requestIdleCallback,
67
+ +cancelIdleCallback: typeof cancelIdleCallback,
68
+ +queueMicrotask: typeof queueMicrotask,
69
+ +setImmediate: typeof setImmediate,
70
+ +clearImmediate: typeof clearImmediate,
71
+
72
+ // Polyfills
73
+ +console: typeof console,
74
+
75
+ // JavaScript environments specific
76
+ +HermesInternal: ?$HermesInternalType,
77
+
78
+ // Internal-specific
79
+ +__DEV__?: boolean,
80
+ +RN$Bridgeless?: boolean,
81
+
82
+ // setupDOM
83
+ +DOMRect: typeof DOMRect,
84
+ +DOMRectReadOnly: typeof DOMRectReadOnly,
85
+
86
+ // Undeclared properties are implicitly `any`.
87
+ [string | symbol]: any,
88
+ };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ // $FlowFixMe[unsupported-syntax]
12
+ declare module 'prettier' {
13
+ declare module.exports: $FlowFixMe;
14
+ }
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ // Adapted from https://github.com/flow-typed/flow-typed/blob/main/definitions/environments/streams/flow_v0.261.x-/streams.js
12
+
13
+ type TextEncodeOptions = {options?: boolean, ...};
14
+
15
+ declare class TextEncoder {
16
+ encode(buffer: string, options?: TextEncodeOptions): Uint8Array;
17
+ }
18
+
19
+ declare class ReadableStreamController {
20
+ close(): void;
21
+
22
+ constructor(
23
+ stream: ReadableStream,
24
+ underlyingSource: UnderlyingSource,
25
+ size: number,
26
+ highWaterMark: number,
27
+ ): void;
28
+
29
+ desiredSize: number;
30
+ // $FlowFixMe[unclear-type]
31
+ enqueue(chunk: any): void;
32
+ error(error: Error): void;
33
+ }
34
+
35
+ declare class ReadableStreamReader {
36
+ cancel(reason: string): void;
37
+
38
+ closed: boolean;
39
+
40
+ constructor(stream: ReadableStream): void;
41
+ read(): Promise<{
42
+ done: boolean,
43
+ // $FlowFixMe[unclear-type]
44
+ value: ?any,
45
+ ...
46
+ }>;
47
+ releaseLock(): void;
48
+ }
49
+
50
+ declare interface UnderlyingSource {
51
+ autoAllocateChunkSize?: number;
52
+ cancel?: (reason: string) => ?Promise<void>;
53
+
54
+ pull?: (controller: ReadableStreamController) => ?Promise<void>;
55
+ start?: (controller: ReadableStreamController) => ?Promise<void>;
56
+ type?: string;
57
+ }
58
+
59
+ declare class TransformStream {
60
+ readable: ReadableStream;
61
+ writable: WritableStream;
62
+ }
63
+
64
+ interface PipeThroughTransformStream {
65
+ readable: ReadableStream;
66
+ writable: WritableStream;
67
+ }
68
+
69
+ type PipeToOptions = {
70
+ preventAbort?: boolean,
71
+ preventCancel?: boolean,
72
+ preventClose?: boolean,
73
+ ...
74
+ };
75
+
76
+ type QueuingStrategy = {
77
+ highWaterMark: number,
78
+ // $FlowFixMe[unclear-type]
79
+ size(chunk: ?any): number,
80
+ ...
81
+ };
82
+
83
+ declare class ReadableStream {
84
+ cancel(reason: string): void;
85
+
86
+ constructor(
87
+ underlyingSource: ?UnderlyingSource,
88
+ queuingStrategy: ?QueuingStrategy,
89
+ ): void;
90
+
91
+ getReader(): ReadableStreamReader;
92
+ locked: boolean;
93
+ // $FlowFixMe[unclear-type]
94
+ pipeThrough(transform: PipeThroughTransformStream, options: ?any): void;
95
+ pipeTo(dest: WritableStream, options: ?PipeToOptions): Promise<void>;
96
+ tee(): [ReadableStream, ReadableStream];
97
+ }
98
+
99
+ declare interface WritableStreamController {
100
+ error(error: Error): void;
101
+ }
102
+
103
+ declare interface UnderlyingSink {
104
+ abort?: (reason: string) => ?Promise<void>;
105
+ autoAllocateChunkSize?: number;
106
+
107
+ close?: (controller: WritableStreamController) => ?Promise<void>;
108
+ start?: (controller: WritableStreamController) => ?Promise<void>;
109
+ type?: string;
110
+ // $FlowFixMe[unclear-type]
111
+ write?: (chunk: any, controller: WritableStreamController) => ?Promise<void>;
112
+ }
113
+
114
+ declare interface WritableStreamWriter {
115
+ // $FlowFixMe[unclear-type]
116
+ abort(reason: string): ?Promise<any>;
117
+ // $FlowFixMe[unclear-type]
118
+ close(): Promise<any>;
119
+ // $FlowFixMe[unclear-type]
120
+ closed: Promise<any>;
121
+
122
+ desiredSize?: number;
123
+ // $FlowFixMe[unclear-type]
124
+ ready: Promise<any>;
125
+ releaseLock(): void;
126
+ // $FlowFixMe[unclear-type]
127
+ write(chunk: any): Promise<any>;
128
+ }
129
+
130
+ declare class WritableStream {
131
+ abort(reason: string): void;
132
+
133
+ constructor(
134
+ underlyingSink: ?UnderlyingSink,
135
+ queuingStrategy: QueuingStrategy,
136
+ ): void;
137
+
138
+ getWriter(): WritableStreamWriter;
139
+ locked: boolean;
140
+ }
package/index.js CHANGED
@@ -86,14 +86,14 @@ module.exports = {
86
86
  /**
87
87
  * @deprecated SafeAreaView has been deprecated and will be removed in a future release.
88
88
  * Please use 'react-native-safe-area-context' instead.
89
- * See https://github.com/th3rdwave/react-native-safe-area-context
89
+ * See https://github.com/AppAndFlow/react-native-safe-area-context
90
90
  */
91
91
  get SafeAreaView() {
92
92
  warnOnce(
93
93
  'safe-area-view-deprecated',
94
94
  'SafeAreaView has been deprecated and will be removed in a future release. ' +
95
95
  "Please use 'react-native-safe-area-context' instead. " +
96
- 'See https://github.com/th3rdwave/react-native-safe-area-context',
96
+ 'See https://github.com/AppAndFlow/react-native-safe-area-context',
97
97
  );
98
98
  return require('./Libraries/Components/SafeAreaView/SafeAreaView').default;
99
99
  },
@@ -289,6 +289,9 @@ module.exports = {
289
289
  get requireNativeComponent() {
290
290
  return require('./Libraries/ReactNative/requireNativeComponent').default;
291
291
  },
292
+ get ReactNativeVersion() {
293
+ return require('./Libraries/Core/ReactNativeVersion').default;
294
+ },
292
295
  get RootTagContext() {
293
296
  return require('./Libraries/ReactNative/RootTag').RootTagContext;
294
297
  },
package/index.win32.js CHANGED
@@ -106,6 +106,7 @@ import typeof useWindowDimensions from './Libraries/Utilities/useWindowDimension
106
106
  import typeof Vibration from './Libraries/Vibration/Vibration';
107
107
  import typeof DevMenu from './src/private/devsupport/devmenu/DevMenu';
108
108
  import typeof registerCallableModule from './Libraries/Core/registerCallableModule';
109
+ import typeof ReactNativeVersion from './Libraries/Core/ReactNativeVersion';
109
110
  // Windows]]
110
111
 
111
112
  const warnOnce = require('./Libraries/Utilities/warnOnce').default;
@@ -173,14 +174,14 @@ module.exports = {
173
174
  /**
174
175
  * @deprecated SafeAreaView has been deprecated and will be removed in a future release.
175
176
  * Please use 'react-native-safe-area-context' instead.
176
- * See https://github.com/th3rdwave/react-native-safe-area-context
177
+ * See https://github.com/AppAndFlow/react-native-safe-area-context
177
178
  */
178
179
  get SafeAreaView(): SafeAreaView {
179
180
  warnOnce(
180
181
  'safe-area-view-deprecated',
181
182
  'SafeAreaView has been deprecated and will be removed in a future release. ' +
182
183
  "Please use 'react-native-safe-area-context' instead. " +
183
- 'See https://github.com/th3rdwave/react-native-safe-area-context',
184
+ 'See https://github.com/AppAndFlow/react-native-safe-area-context',
184
185
  );
185
186
  return require('./Libraries/Components/SafeAreaView/SafeAreaView').default;
186
187
  },
@@ -377,6 +378,9 @@ module.exports = {
377
378
  ) => HostComponent<T> {
378
379
  return require('./Libraries/ReactNative/requireNativeComponent').default;
379
380
  },
381
+ get ReactNativeVersion(): ReactNativeVersion {
382
+ return require('./Libraries/Core/ReactNativeVersion').default;
383
+ },
380
384
  get RootTagContext(): RootTagContext {
381
385
  return require('./Libraries/ReactNative/RootTag').RootTagContext;
382
386
  },
@@ -50,7 +50,7 @@ export default function mockComponent<
50
50
  (RealComponent.render == null
51
51
  ? 'Unknown'
52
52
  : // $FlowFixMe[incompatible-use]
53
- RealComponent.render.displayName ?? RealComponent.render.name);
53
+ (RealComponent.render.displayName ?? RealComponent.render.name));
54
54
 
55
55
  const nameWithoutPrefix = name.replace(/^(RCT|RK)/, '');
56
56
 
package/jest/setup.js CHANGED
@@ -70,6 +70,17 @@ Object.defineProperties(global, {
70
70
  },
71
71
  });
72
72
 
73
+ /**
74
+ * Prettier v3 uses import (cjs/mjs) file formats that jest-runtime does not
75
+ * support. To work around this we need to bypass the jest module system by
76
+ * using the orginal node `require` function.
77
+ */
78
+ jest.mock('prettier', () => {
79
+ // $FlowExpectedError[underconstrained-implicit-instantiation]
80
+ const module = jest.requireActual('module');
81
+ return module.prototype.require(require.resolve('prettier'));
82
+ });
83
+
73
84
  // $FlowFixMe[incompatible-call] - `./mocks/AppState` is incomplete.
74
85
  mock('m#../Libraries/AppState/AppState', 'm#./mocks/AppState');
75
86
  mock('m#../Libraries/BatchedBridge/NativeModules', 'm#./mocks/NativeModules');
package/overrides.json CHANGED
@@ -7,19 +7,19 @@
7
7
  "**/__snapshots__/**",
8
8
  "src-win/rntypes/**"
9
9
  ],
10
- "baseVersion": "0.81.0-nightly-20250709-6892dde36",
10
+ "baseVersion": "0.82.0-nightly-20250806-5936f29d6",
11
11
  "overrides": [
12
12
  {
13
13
  "type": "derived",
14
14
  "file": ".flowconfig",
15
15
  "baseFile": ".flowconfig",
16
- "baseHash": "a5a50b87e779ba343919454cb5f7c1e77c2db982"
16
+ "baseHash": "373bd1b0dfbd85e02605d9526e7b08b41a67435f"
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": "c5d0dfd40d0fb7c197790b1f23f4f8b9ca835047"
22
+ "baseHash": "e4e8dc864521ce28adf8cfa2fb29059484206a05"
23
23
  },
24
24
  {
25
25
  "type": "platform",
@@ -41,7 +41,7 @@
41
41
  "type": "derived",
42
42
  "file": "src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js",
43
43
  "baseFile": "packages/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js",
44
- "baseHash": "5a43c9cf537c5cb89e7f634e45be708f4b021493"
44
+ "baseHash": "692b825d9db6a6da9c3ae9595e4dfb5c202b879d"
45
45
  },
46
46
  {
47
47
  "type": "copy",
@@ -85,7 +85,7 @@
85
85
  "type": "patch",
86
86
  "file": "src-win/Libraries/Components/Pressable/Pressable.win32.js",
87
87
  "baseFile": "packages/react-native/Libraries/Components/Pressable/Pressable.js",
88
- "baseHash": "5909b509ee835f2b6eb0dbd3e223180efe602f98",
88
+ "baseHash": "08a6e1c0dd895af70ea1c8448a3be028d9cd2587",
89
89
  "issue": 6240
90
90
  },
91
91
  {
@@ -114,7 +114,7 @@
114
114
  "type": "derived",
115
115
  "file": "src-win/Libraries/Components/TextInput/TextInput.win32.js",
116
116
  "baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
117
- "baseHash": "b6289ef53abc941f6f0aed50f80d3852b6682215"
117
+ "baseHash": "d6f92b47afedf2e31f4066e50c2900477c4d6c31"
118
118
  },
119
119
  {
120
120
  "type": "patch",
@@ -153,7 +153,7 @@
153
153
  "type": "derived",
154
154
  "file": "src-win/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js",
155
155
  "baseFile": "packages/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js",
156
- "baseHash": "5608d67cf2684b855fb32403fea01b8c22c66f3b"
156
+ "baseHash": "2ded2efb727d7544aa8a0b249dd3f2502bb57129"
157
157
  },
158
158
  {
159
159
  "type": "platform",
@@ -177,7 +177,7 @@
177
177
  "type": "patch",
178
178
  "file": "src-win/Libraries/Components/View/View.win32.js",
179
179
  "baseFile": "packages/react-native/Libraries/Components/View/View.js",
180
- "baseHash": "83a4fc8e982845619abb121bb860ad63366260c7"
180
+ "baseHash": "60eab5df574b43200494005fc3f00d11576d515b"
181
181
  },
182
182
  {
183
183
  "type": "derived",
@@ -365,7 +365,7 @@
365
365
  "type": "patch",
366
366
  "file": "src-win/Libraries/Pressability/Pressability.win32.js",
367
367
  "baseFile": "packages/react-native/Libraries/Pressability/Pressability.js",
368
- "baseHash": "54f2a508c9378c1d9240ff27a460a8815e2b8ebd",
368
+ "baseHash": "a4205b3bea276e65da3ce0aeb6753bc8e7c5ead0",
369
369
  "issue": 6240
370
370
  },
371
371
  {
@@ -491,13 +491,13 @@
491
491
  "type": "copy",
492
492
  "file": "src-win/Libraries/Utilities/useMergeRefs.js",
493
493
  "baseFile": "packages/react-native/Libraries/Utilities/useMergeRefs.js",
494
- "baseHash": "4ba42e1b43ef55a1a9e3095336979fa712f4dc8d"
494
+ "baseHash": "4ab145e150c82f4f82547122896e02f45103d1a1"
495
495
  },
496
496
  {
497
497
  "type": "patch",
498
498
  "file": "src-win/src/private/animated/NativeAnimatedHelper.win32.js",
499
499
  "baseFile": "packages/react-native/src/private/animated/NativeAnimatedHelper.js",
500
- "baseHash": "8ed20ecc1b2a1967539fee0d53a47f25432746f4",
500
+ "baseHash": "ecb4418a11a56257962be8ca273d3dbfb7d9862c",
501
501
  "issue": 11041
502
502
  },
503
503
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@office-iss/react-native-win32",
3
- "version": "0.0.0-canary.299",
3
+ "version": "0.0.0-canary.300",
4
4
  "description": "Implementation of react native on top of Office's Win32 platform.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,17 +26,17 @@
26
26
  "dependencies": {
27
27
  "@babel/runtime": "^7.0.0",
28
28
  "@jest/create-cache-key-function": "^29.7.0",
29
- "@react-native-community/cli": "17.0.0",
30
- "@react-native-community/cli-platform-android": "17.0.0",
31
- "@react-native-community/cli-platform-ios": "17.0.0",
29
+ "@react-native-community/cli": "20.0.0",
30
+ "@react-native-community/cli-platform-android": "20.0.0",
31
+ "@react-native-community/cli-platform-ios": "20.0.0",
32
32
  "@react-native/assets": "1.0.0",
33
- "@react-native/assets-registry": "0.81.0-nightly-20250709-6892dde36",
34
- "@react-native/codegen": "0.81.0-nightly-20250709-6892dde36",
35
- "@react-native/community-cli-plugin": "0.81.0-nightly-20250709-6892dde36",
36
- "@react-native/gradle-plugin": "0.81.0-nightly-20250709-6892dde36",
37
- "@react-native/js-polyfills": "0.81.0-nightly-20250709-6892dde36",
38
- "@react-native/normalize-colors": "0.81.0-nightly-20250709-6892dde36",
39
- "@react-native/virtualized-lists": "0.81.0-nightly-20250709-6892dde36",
33
+ "@react-native/assets-registry": "0.82.0-nightly-20250806-5936f29d6",
34
+ "@react-native/codegen": "0.82.0-nightly-20250806-5936f29d6",
35
+ "@react-native/community-cli-plugin": "0.82.0-nightly-20250806-5936f29d6",
36
+ "@react-native/gradle-plugin": "0.82.0-nightly-20250806-5936f29d6",
37
+ "@react-native/js-polyfills": "0.82.0-nightly-20250806-5936f29d6",
38
+ "@react-native/normalize-colors": "0.82.0-nightly-20250806-5936f29d6",
39
+ "@react-native/virtualized-lists": "0.82.0-nightly-20250806-5936f29d6",
40
40
  "abort-controller": "^3.0.0",
41
41
  "anser": "^1.4.9",
42
42
  "ansi-regex": "^5.0.0",
@@ -72,30 +72,30 @@
72
72
  "devDependencies": {
73
73
  "@babel/core": "^7.25.2",
74
74
  "@babel/eslint-parser": "^7.25.1",
75
- "@react-native/metro-config": "0.81.0-nightly-20250709-6892dde36",
75
+ "@react-native/metro-config": "0.82.0-nightly-20250806-5936f29d6",
76
76
  "@rnw-scripts/babel-react-native-config": "0.0.0",
77
- "@rnw-scripts/eslint-config": "1.2.37",
78
- "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.41",
79
- "@rnw-scripts/just-task": "2.3.56",
77
+ "@rnw-scripts/eslint-config": "1.2.38",
78
+ "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.42",
79
+ "@rnw-scripts/just-task": "2.3.57",
80
80
  "@rnw-scripts/metro-dev-config": "0.0.0",
81
81
  "@rnx-kit/jest-preset": "^0.1.17",
82
82
  "@types/node": "^22.0.0",
83
83
  "@types/prop-types": "15.7.1",
84
84
  "@types/react": "^19.0.0",
85
85
  "eslint": "^8.19.0",
86
- "flow-bin": "^0.272.0",
86
+ "flow-bin": "^0.278.0",
87
87
  "jscodeshift": "^0.14.0",
88
88
  "just-scripts": "^1.3.3",
89
89
  "prettier": "2.8.8",
90
90
  "react": "19.1.0",
91
- "react-native": "0.81.0-nightly-20250709-6892dde36",
92
- "react-native-platform-override": "^1.9.59",
91
+ "react-native": "0.82.0-nightly-20250806-5936f29d6",
92
+ "react-native-platform-override": "^1.9.60",
93
93
  "typescript": "5.0.4"
94
94
  },
95
95
  "peerDependencies": {
96
96
  "@types/react": "^19.1.0",
97
97
  "react": "^19.1.0",
98
- "react-native": "0.81.0-nightly-20250709-6892dde36"
98
+ "react-native": "0.82.0-nightly-20250806-5936f29d6"
99
99
  },
100
100
  "beachball": {
101
101
  "defaultNpmTag": "canary",
@@ -58,7 +58,6 @@ let globalEventEmitterGetValueListener: ?EventSubscription = null;
58
58
  let globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;
59
59
 
60
60
  const shouldSignalBatch: boolean =
61
- ReactNativeFeatureFlags.animatedShouldSignalBatch() ||
62
61
  ReactNativeFeatureFlags.cxxNativeAnimatedEnabled();
63
62
 
64
63
  function createNativeOperations(): $NonMaybeType<typeof NativeAnimatedModule> {
@@ -141,6 +140,8 @@ const NativeOperations = createNativeOperations();
141
140
  const API = {
142
141
  getValue: (isSingleOpBatching
143
142
  ? (tag, saveValueCallback) => {
143
+ /* $FlowFixMe[constant-condition] Error discovered during Constant
144
+ * Condition roll out. See https://fburl.com/workplace/1v97vimq. */
144
145
  if (saveValueCallback) {
145
146
  eventListenerGetValueCallbacks[tag] = saveValueCallback;
146
147
  }
@@ -265,6 +266,8 @@ const API = {
265
266
 
266
267
  startAnimatingNode: (isSingleOpBatching
267
268
  ? (animationId, nodeTag, config, endCallback) => {
269
+ /* $FlowFixMe[constant-condition] Error discovered during Constant
270
+ * Condition roll out. See https://fburl.com/workplace/1v97vimq. */
268
271
  if (endCallback) {
269
272
  eventListenerAnimationFinishedCallbacks[animationId] = endCallback;
270
273
  }
@@ -350,6 +353,8 @@ function ensureGlobalEventEmitterListeners() {
350
353
  params => {
351
354
  const {tag} = params;
352
355
  const callback = eventListenerGetValueCallbacks[tag];
356
+ /* $FlowFixMe[constant-condition] Error discovered during Constant
357
+ * Condition roll out. See https://fburl.com/workplace/1v97vimq. */
353
358
  if (!callback) {
354
359
  return;
355
360
  }
@@ -366,6 +371,8 @@ function ensureGlobalEventEmitterListeners() {
366
371
  for (const animation of animations) {
367
372
  const {animationId} = animation;
368
373
  const callback = eventListenerAnimationFinishedCallbacks[animationId];
374
+ /* $FlowFixMe[constant-condition] Error discovered during Constant
375
+ * Condition roll out. See https://fburl.com/workplace/1v97vimq. */
369
376
  if (callback) {
370
377
  callback(animation);
371
378
  delete eventListenerAnimationFinishedCallbacks[animationId];
@@ -58,7 +58,6 @@ let globalEventEmitterGetValueListener: ?EventSubscription = null;
58
58
  let globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;
59
59
 
60
60
  const shouldSignalBatch: boolean =
61
- ReactNativeFeatureFlags.animatedShouldSignalBatch() ||
62
61
  ReactNativeFeatureFlags.cxxNativeAnimatedEnabled();
63
62
 
64
63
  function createNativeOperations(): $NonMaybeType<typeof NativeAnimatedModule> {
@@ -141,6 +140,8 @@ const NativeOperations = createNativeOperations();
141
140
  const API = {
142
141
  getValue: (isSingleOpBatching
143
142
  ? (tag, saveValueCallback) => {
143
+ /* $FlowFixMe[constant-condition] Error discovered during Constant
144
+ * Condition roll out. See https://fburl.com/workplace/1v97vimq. */
144
145
  if (saveValueCallback) {
145
146
  eventListenerGetValueCallbacks[tag] = saveValueCallback;
146
147
  }
@@ -268,6 +269,8 @@ const API = {
268
269
 
269
270
  startAnimatingNode: (isSingleOpBatching
270
271
  ? (animationId, nodeTag, config, endCallback) => {
272
+ /* $FlowFixMe[constant-condition] Error discovered during Constant
273
+ * Condition roll out. See https://fburl.com/workplace/1v97vimq. */
271
274
  if (endCallback) {
272
275
  eventListenerAnimationFinishedCallbacks[animationId] = endCallback;
273
276
  }
@@ -353,6 +356,8 @@ function ensureGlobalEventEmitterListeners() {
353
356
  params => {
354
357
  const {tag} = params;
355
358
  const callback = eventListenerGetValueCallbacks[tag];
359
+ /* $FlowFixMe[constant-condition] Error discovered during Constant
360
+ * Condition roll out. See https://fburl.com/workplace/1v97vimq. */
356
361
  if (!callback) {
357
362
  return;
358
363
  }
@@ -369,6 +374,8 @@ function ensureGlobalEventEmitterListeners() {
369
374
  for (const animation of animations) {
370
375
  const {animationId} = animation;
371
376
  const callback = eventListenerAnimationFinishedCallbacks[animationId];
377
+ /* $FlowFixMe[constant-condition] Error discovered during Constant
378
+ * Condition roll out. See https://fburl.com/workplace/1v97vimq. */
372
379
  if (callback) {
373
380
  callback(animation);
374
381
  delete eventListenerAnimationFinishedCallbacks[animationId];
@@ -67,7 +67,7 @@ export default function createAnimatedPropsHook(
67
67
 
68
68
  useEffect(() => {
69
69
  // Animated queue flush is handled deterministically in setImmediate for the following feature flags:
70
- // animatedShouldSignalBatch, cxxNativeAnimatedEnabled
70
+ // cxxNativeAnimatedEnabled
71
71
  if (!NativeAnimatedHelper.shouldSignalBatch) {
72
72
  // If multiple components call `flushQueue`, the first one will flush the
73
73
  // queue and subsequent ones will do nothing.
@@ -89,13 +89,6 @@ export default function createAnimatedPropsHook(
89
89
  };
90
90
  });
91
91
 
92
- // NOTE: This feature flag must be evaluated inside the hook because this
93
- // module factory can be evaluated much sooner, before overrides are set.
94
- const useAnimatedPropsLifecycle =
95
- ReactNativeFeatureFlags.scheduleAnimatedCleanupInMicrotask()
96
- ? useAnimatedPropsLifecycleWithCleanupInMicrotask
97
- : useAnimatedPropsLifecycleWithPrevNodeRef;
98
-
99
92
  useAnimatedPropsLifecycle(node);
100
93
 
101
94
  // TODO: This "effect" does three things:
@@ -262,44 +255,6 @@ function addAnimatedValuesListenersToProps(
262
255
  }
263
256
  }
264
257
 
265
- /**
266
- * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`
267
- * and `__detach`. However, this is more complicated because `AnimatedProps`
268
- * uses reference counting to determine when to recursively detach its children
269
- * nodes. So in order to optimize this, we avoid detaching until the next attach
270
- * unless we are unmounting.
271
- */
272
- function useAnimatedPropsLifecycleWithPrevNodeRef(node: AnimatedProps): void {
273
- const prevNodeRef = useRef<?AnimatedProps>(null);
274
- const isUnmountingRef = useRef<boolean>(false);
275
-
276
- useInsertionEffect(() => {
277
- isUnmountingRef.current = false;
278
- return () => {
279
- isUnmountingRef.current = true;
280
- };
281
- }, []);
282
-
283
- useInsertionEffect(() => {
284
- node.__attach();
285
- if (prevNodeRef.current != null) {
286
- const prevNode = prevNodeRef.current;
287
- // TODO: Stop restoring default values (unless `reset` is called).
288
- prevNode.__restoreDefaultValues();
289
- prevNode.__detach();
290
- prevNodeRef.current = null;
291
- }
292
- return () => {
293
- if (isUnmountingRef.current) {
294
- // NOTE: Do not restore default values on unmount, see D18197735.
295
- node.__detach();
296
- } else {
297
- prevNodeRef.current = node;
298
- }
299
- };
300
- }, [node]);
301
- }
302
-
303
258
  /**
304
259
  * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`
305
260
  * and `__detach`. However, `__detach` occurs in a microtask for these reasons:
@@ -314,9 +269,7 @@ function useAnimatedPropsLifecycleWithPrevNodeRef(node: AnimatedProps): void {
314
269
  * callbacks may update state, which is unsupported and will force synchronous
315
270
  * updates.
316
271
  */
317
- function useAnimatedPropsLifecycleWithCleanupInMicrotask(
318
- node: AnimatedProps,
319
- ): void {
272
+ function useAnimatedPropsLifecycle(node: AnimatedProps): void {
320
273
  const isMounted = useRef<boolean>(false);
321
274
 
322
275
  useInsertionEffect(() => {