@office-iss/react-native-win32 0.72.8 → 0.73.0-preview.2

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 (277) hide show
  1. package/.flowconfig +15 -5
  2. package/CHANGELOG.json +530 -101
  3. package/CHANGELOG.md +213 -56
  4. package/IntegrationTests/PromiseTest.js +1 -0
  5. package/IntegrationTests/websocket_integration_test_server.js +1 -1
  6. package/Libraries/Animated/Animated.js +1 -1
  7. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  8. package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
  9. package/Libraries/Animated/NativeAnimatedHelper.win32.js +16 -12
  10. package/Libraries/Animated/NativeAnimatedModule.js +6 -2
  11. package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
  12. package/Libraries/Animated/animations/Animation.js +57 -3
  13. package/Libraries/Animated/animations/DecayAnimation.js +9 -0
  14. package/Libraries/Animated/animations/SpringAnimation.js +8 -0
  15. package/Libraries/Animated/animations/TimingAnimation.js +8 -0
  16. package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
  17. package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
  18. package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
  19. package/Libraries/Animated/createAnimatedComponent.js +1 -0
  20. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  21. package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
  22. package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
  23. package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
  24. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
  25. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
  26. package/Libraries/Animated/useAnimatedProps.js +9 -10
  27. package/Libraries/AppState/AppState.d.ts +1 -1
  28. package/Libraries/AppState/NativeAppState.js +8 -4
  29. package/Libraries/BatchedBridge/MessageQueue.js +45 -36
  30. package/Libraries/Blob/Blob.js +6 -2
  31. package/Libraries/Blob/BlobManager.js +9 -10
  32. package/Libraries/Blob/BlobRegistry.js +14 -9
  33. package/Libraries/Blob/File.js +1 -1
  34. package/Libraries/Blob/FileReader.js +1 -2
  35. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +1 -5
  36. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +7 -48
  37. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +1 -1
  38. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
  39. package/Libraries/Components/Button/ButtonWin32.d.ts +1 -1
  40. package/Libraries/Components/Button/ButtonWin32.js +1 -4
  41. package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
  42. package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
  43. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
  44. package/Libraries/Components/EnterString.win32.d.ts +1 -1
  45. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
  46. package/Libraries/Components/Pressable/Pressable.js +3 -2
  47. package/Libraries/Components/Pressable/Pressable.win32.js +4 -3
  48. package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
  49. package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
  50. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +7 -8
  51. package/Libraries/Components/ScrollView/ScrollView.js +3 -1
  52. package/Libraries/Components/ScrollView/ScrollView.win32.js +3 -1
  53. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
  54. package/Libraries/Components/Switch/Switch.js +1 -0
  55. package/Libraries/Components/Text/TextWin32.d.ts +1 -1
  56. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  57. package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
  58. package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
  59. package/Libraries/Components/TextInput/TextInput.js +62 -10
  60. package/Libraries/Components/TextInput/TextInput.win32.js +953 -206
  61. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +23 -0
  62. package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
  63. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +9 -1
  64. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +2 -2
  65. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  66. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  67. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  68. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  69. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
  70. package/Libraries/Components/Touchable/TouchableWin32.d.ts +1 -1
  71. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
  73. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
  74. package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
  75. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  76. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
  77. package/Libraries/Components/View/View.js +46 -32
  78. package/Libraries/Components/View/View.win32.js +37 -6
  79. package/Libraries/Components/View/ViewAccessibility.d.ts +8 -2
  80. package/Libraries/Components/View/ViewNativeComponent.js +1 -0
  81. package/Libraries/Components/View/ViewPropTypes.js +18 -3
  82. package/Libraries/Components/View/ViewPropTypes.win32.js +30 -4
  83. package/Libraries/Components/View/ViewWin32.js +3 -2
  84. package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
  85. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
  86. package/Libraries/Core/ExceptionsManager.js +16 -7
  87. package/Libraries/Core/ExtendedError.js +12 -0
  88. package/Libraries/Core/ReactNativeVersion.js +3 -3
  89. package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
  90. package/Libraries/Core/ReactNativeVersionCheck.win32.js +0 -2
  91. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
  92. package/Libraries/Core/setUpDeveloperTools.js +5 -1
  93. package/Libraries/Core/setUpIntersectionObserver.js +16 -0
  94. package/Libraries/{Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → Core/setUpMutationObserver.js} +6 -2
  95. package/Libraries/Core/setUpPerformance.js +6 -13
  96. package/Libraries/Core/setUpPerformanceObserver.js +16 -0
  97. package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
  98. package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
  99. package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
  100. package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
  101. package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
  102. package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
  103. package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
  104. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
  105. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
  106. package/Libraries/Image/Image.android.js +8 -2
  107. package/Libraries/Image/Image.d.ts +1 -1
  108. package/Libraries/Image/Image.ios.js +4 -1
  109. package/Libraries/Image/Image.win32.js +6 -3
  110. package/Libraries/Image/ImageBackground.js +3 -0
  111. package/Libraries/Image/resolveAssetSource.win32.js +1 -1
  112. package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
  113. package/Libraries/Inspector/NetworkOverlay.js +2 -2
  114. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
  115. package/Libraries/Interaction/PanResponder.js +1 -4
  116. package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
  117. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
  118. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
  119. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
  120. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
  121. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  122. package/Libraries/Lists/FlatList.d.ts +2 -1
  123. package/Libraries/Lists/FlatList.js +15 -5
  124. package/Libraries/Lists/SectionList.js +4 -0
  125. package/Libraries/LogBox/Data/LogBoxData.js +2 -1
  126. package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
  127. package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
  128. package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
  129. package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
  131. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
  133. package/Libraries/MutationObserver/MutationObserver.js +184 -0
  134. package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
  135. package/Libraries/MutationObserver/MutationRecord.js +82 -0
  136. package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
  137. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
  138. package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
  139. package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
  140. package/Libraries/NativeComponent/BaseViewConfig.win32.js +33 -0
  141. package/Libraries/NativeComponent/NativeComponentRegistry.js +13 -9
  142. package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
  143. package/Libraries/Network/RCTNetworking.android.js +2 -1
  144. package/Libraries/Network/XMLHttpRequest.js +1 -1
  145. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
  146. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
  147. package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
  148. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  149. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
  150. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
  151. package/Libraries/Pressability/Pressability.js +28 -3
  152. package/Libraries/Pressability/Pressability.win32.js +30 -5
  153. package/Libraries/ReactNative/AppContainer.js +2 -3
  154. package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
  155. package/Libraries/ReactNative/AppRegistry.js +66 -53
  156. package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
  157. package/Libraries/ReactNative/FabricUIManager.js +143 -34
  158. package/Libraries/ReactNative/I18nManager.js +5 -11
  159. package/Libraries/ReactNative/NativeI18nManager.js +7 -5
  160. package/Libraries/ReactNative/PaperUIManager.win32.js +2 -2
  161. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
  162. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
  163. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
  164. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
  165. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
  166. package/Libraries/ReactNative/UIManager.js +8 -0
  167. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
  168. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
  169. package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
  170. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  171. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
  173. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
  174. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
  175. package/Libraries/Renderer/shims/ReactFabric.js +5 -6
  176. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
  177. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  178. package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
  179. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
  180. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
  181. package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
  182. package/Libraries/Share/Share.d.ts +3 -9
  183. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
  184. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
  185. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +14 -4
  186. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  187. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  188. package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
  189. package/Libraries/StyleSheet/StyleSheet.js +3 -0
  190. package/Libraries/StyleSheet/StyleSheet.win32.js +3 -0
  191. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
  192. package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
  193. package/Libraries/StyleSheet/flattenStyle.js +4 -0
  194. package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
  195. package/Libraries/StyleSheet/processColor.js +1 -2
  196. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  197. package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
  198. package/Libraries/Text/Text.d.ts +5 -5
  199. package/Libraries/Text/Text.js +17 -10
  200. package/Libraries/Text/Text.win32.js +354 -0
  201. package/Libraries/Text/TextProps.win32.js +281 -0
  202. package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
  203. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  204. package/Libraries/Types/CoreEventTypes.d.ts +5 -2
  205. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
  206. package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
  207. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
  208. package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
  209. package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
  210. package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
  211. package/Libraries/Utilities/Platform.android.js +12 -8
  212. package/Libraries/Utilities/Platform.d.ts +1 -0
  213. package/Libraries/Utilities/Platform.flow.js +84 -0
  214. package/Libraries/Utilities/Platform.flow.win32.js +111 -0
  215. package/Libraries/Utilities/Platform.ios.js +12 -8
  216. package/Libraries/Utilities/Platform.win32.js +12 -8
  217. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  218. package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
  219. package/Libraries/Utilities/SceneTracker.js +1 -1
  220. package/Libraries/Utilities/createPerformanceLogger.js +63 -32
  221. package/Libraries/Utilities/useColorScheme.js +7 -8
  222. package/Libraries/WebPerformance/MemoryInfo.js +1 -1
  223. package/Libraries/WebPerformance/NativePerformance.js +3 -8
  224. package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
  225. package/Libraries/WebPerformance/Performance.js +42 -15
  226. package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
  227. package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
  228. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
  229. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
  230. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
  231. package/Libraries/promiseRejectionTrackingOptions.js +21 -9
  232. package/Libraries/vendor/emitter/EventEmitter.js +17 -17
  233. package/flow/global.js +1 -3
  234. package/flow/jest.js +5 -1
  235. package/{Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
  236. package/jest/__tests__/setup-test.js +18 -0
  237. package/jest/mockModal.js +6 -4
  238. package/jest/setup.js +61 -30
  239. package/jest.config.js +1 -1
  240. package/just-task.js +1 -0
  241. package/overrides.json +54 -60
  242. package/package.json +35 -33
  243. package/src/Libraries/Components/Button/ButtonWin32.Props.ts +1 -1
  244. package/src/Libraries/Components/Button/ButtonWin32.tsx +0 -2
  245. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
  246. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
  247. package/src/Libraries/Components/View/ViewAccessibility.d.ts +8 -2
  248. package/src/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  249. package/types/experimental.d.ts +44 -0
  250. package/types/index.d.ts +2 -1
  251. package/types/modules/Devtools.d.ts +1 -0
  252. package/types/modules/globals.d.ts +16 -1
  253. package/IntegrationTests/BUCK +0 -32
  254. package/IntegrationTests/PropertiesUpdateTest.js +0 -29
  255. package/IntegrationTests/RCTRootViewIntegrationTestApp.js +0 -86
  256. package/IntegrationTests/ReactContentSizeUpdateTest.js +0 -89
  257. package/IntegrationTests/SizeFlexibilityUpdateTest.js +0 -106
  258. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +0 -37
  259. package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +0 -51
  260. package/Libraries/Components/TextInput/TextInput.Types.win32.js +0 -3
  261. package/Libraries/Components/TextInput/TextInput.Types.win32.js.map +0 -1
  262. package/Libraries/Utilities/AcessibilityMapping.js +0 -154
  263. package/Libraries/Utilities/AcessibilityMapping.win32.js +0 -156
  264. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
  265. package/Libraries/Utilities/useColorScheme.win32.js +0 -26
  266. package/flow/use-sync-external-store.js +0 -20
  267. package/flow-typed/npm/base64-js_v1.x.x.js +0 -12
  268. package/flow-typed/npm/glob_v7.x.x.js +0 -79
  269. package/flow-typed/npm/pretty-format_v26.x.x.js +0 -49
  270. package/flow-typed/npm/promise_v8.x.x.js +0 -30
  271. package/flow-typed/npm/react-dom_v17.x.x.js +0 -139
  272. package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -79
  273. package/flow-typed/npm/stacktrace-parser_v0.1.x.js +0 -17
  274. package/flow-typed/npm/yargs_v17.x.x.js +0 -341
  275. package/src/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +0 -161
  276. package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +0 -68
  277. /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,134 +1,291 @@
1
1
  # Change Log - @office-iss/react-native-win32
2
2
 
3
- This log was last generated on Fri, 20 Oct 2023 23:18:24 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 24 Oct 2023 18:22:06 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## 0.72.8
7
+ ## 0.73.0-preview.2
8
8
 
9
- Fri, 20 Oct 2023 23:18:24 GMT
9
+ Tue, 24 Oct 2023 18:22:06 GMT
10
10
 
11
- ### Patches
11
+ ### Changes
12
12
 
13
- - add support for announceForAccessibilityWithOptions (krsiler@microsoft.com)
13
+ - integrate 0.73-rc3 (tatianakapos@microsoft.com)
14
14
 
15
- ## 0.72.7
15
+ ## 0.73.0-preview.1
16
16
 
17
- Mon, 16 Oct 2023 23:50:47 GMT
17
+ Tue, 17 Oct 2023 22:26:52 GMT
18
18
 
19
- ### Patches
19
+ ### Changes
20
20
 
21
- - Integrate RN 0.72.6 (jthysell@microsoft.com)
21
+ - Promote 0.73 to preview (tatianakapos@microsoft.com)
22
22
 
23
- ## 0.72.6
23
+ ## 0.0.0-canary.218
24
24
 
25
- Mon, 09 Oct 2023 15:13:27 GMT
25
+ Thu, 12 Oct 2023 05:15:53 GMT
26
26
 
27
- ### Patches
27
+ ### Changes
28
28
 
29
- - Have RCTNetworking.win32 fork RCTNetworking.ios (#12199) (julio.rocha@microsoft.com)
29
+ - Integrate 9/25 (yajurgrover24@gmail.com)
30
+ - Bump @rnw-scripts/eslint-config to v1.2.3
31
+ - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.6
32
+ - Bump @rnw-scripts/just-task to v2.3.17
33
+ - Bump react-native-platform-override to v1.9.16
30
34
 
31
- ## 0.72.5
35
+ ## 0.0.0-canary.217
32
36
 
33
- Wed, 27 Sep 2023 21:02:34 GMT
37
+ Fri, 06 Oct 2023 05:13:51 GMT
34
38
 
35
- ### Patches
39
+ ### Changes
36
40
 
37
- - Bump react-native dependency to 0.72.5 (30809111+acoates-ms@users.noreply.github.com)
41
+ - Integrate 9/20 (34109996+chiaramooney@users.noreply.github.com)
38
42
 
39
- ## 0.72.4
43
+ ## 0.0.0-canary.216
40
44
 
41
- Mon, 11 Sep 2023 15:14:55 GMT
45
+ Tue, 03 Oct 2023 05:13:16 GMT
42
46
 
43
- ### Patches
47
+ ### Changes
48
+
49
+ - Have RCTNetworking.win32 fork RCTNetworking.ios (julio.rocha@microsoft.com)
50
+
51
+ ## 0.0.0-canary.215
52
+
53
+ Wed, 20 Sep 2023 05:17:49 GMT
54
+
55
+ ### Changes
56
+
57
+ - Integrate 8/11 (34109996+chiaramooney@users.noreply.github.com)
58
+ - Bump @rnw-scripts/just-task to v2.3.16
59
+ - Bump react-native-platform-override to v1.9.15
60
+
61
+ ## 0.0.0-canary.214
62
+
63
+ Sat, 09 Sep 2023 05:12:55 GMT
64
+
65
+ ### Changes
44
66
 
45
67
  - Webpack assets do not prefix paths with /, which causes a lost char in asset path (30809111+acoates-ms@users.noreply.github.com)
46
68
 
47
- ## 0.72.3
69
+ ## 0.0.0-canary.213
48
70
 
49
- Mon, 28 Aug 2023 15:14:10 GMT
71
+ Tue, 29 Aug 2023 05:13:35 GMT
50
72
 
51
- ### Patches
73
+ ### Changes
74
+
75
+ - Integrate RN Nightly Build 7/28 (yajurgrover@microsoft.com)
76
+
77
+ ## 0.0.0-canary.212
78
+
79
+ Sat, 26 Aug 2023 05:15:06 GMT
80
+
81
+ ### Changes
52
82
 
53
- - fix a11yState and add support for aria-required and -multiselectable (krsiler@microsoft.com)
54
83
  - Remove flow usage from saveAssetPlugin codeflow (30809111+acoates-ms@users.noreply.github.com)
55
84
 
56
- ## 0.72.2
85
+ ## 0.0.0-canary.211
57
86
 
58
- Mon, 14 Aug 2023 15:18:19 GMT
87
+ Thu, 24 Aug 2023 05:14:48 GMT
59
88
 
60
- ### Patches
89
+ ### Changes
90
+
91
+ - fix a11yState and add support for aria-required and -multiselectable (krsiler@microsoft.com)
92
+
93
+ ## 0.0.0-canary.210
94
+
95
+ Fri, 11 Aug 2023 05:13:37 GMT
96
+
97
+ ### Changes
61
98
 
62
- - add isDefaultButton check to win32 (email not defined)
63
99
  - Add saveAssetPlugin to fix long path assets (30809111+acoates-ms@users.noreply.github.com)
64
100
 
65
- ## 0.72.1
101
+ ## 0.0.0-canary.209
66
102
 
67
- Wed, 19 Jul 2023 18:43:52 GMT
103
+ Fri, 28 Jul 2023 05:14:51 GMT
68
104
 
69
- ### Patches
105
+ ### Changes
70
106
 
71
- - Integrate RN 0.72.3 (jthysell@microsoft.com)
107
+ - Integrate 7/21 (34109996+chiaramooney@users.noreply.github.com)
108
+ - Bump @rnw-scripts/just-task to v2.3.15
109
+ - Bump react-native-platform-override to v1.9.14
72
110
 
73
- ## 0.72.0
111
+ ## 0.0.0-canary.208
74
112
 
75
- Fri, 23 Jun 2023 22:30:08 GMT
113
+ Thu, 27 Jul 2023 05:14:48 GMT
76
114
 
77
- ### Patches
115
+ ### Changes
78
116
 
79
- - Promote 0.72 to latest (jthysell@microsoft.com)
117
+ - integrate RN Nightly 7/5/23 (email not defined)
80
118
 
81
- ## 0.72.0-preview.6
119
+ ## 0.0.0-canary.207
82
120
 
83
- Fri, 23 Jun 2023 01:59:52 GMT
121
+ Wed, 26 Jul 2023 05:15:46 GMT
84
122
 
85
123
  ### Changes
86
124
 
87
- - Integrate RN 0.72.0 (jthysell@microsoft.com)
125
+ - Remove upstream react-native flow typings from repo (jthysell@microsoft.com)
126
+ - Bump @rnw-scripts/just-task to v2.3.14
127
+ - Bump react-native-platform-override to v1.9.13
88
128
 
89
- ## 0.72.0-preview.5
129
+ ## 0.0.0-canary.206
90
130
 
91
- Mon, 12 Jun 2023 15:15:26 GMT
131
+ Tue, 18 Jul 2023 05:13:38 GMT
132
+
133
+ ### Changes
134
+
135
+ - add isDefaultButton check to win32 (email not defined)
136
+
137
+ ## 0.0.0-canary.205
138
+
139
+ Fri, 14 Jul 2023 05:17:04 GMT
140
+
141
+ ### Changes
142
+
143
+ - integration 6/28 (tatianakapos@microsoft.com)
144
+ - Bump @rnw-scripts/eslint-config to v1.2.2
145
+ - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.5
146
+ - Bump @rnw-scripts/just-task to v2.3.13
147
+ - Bump react-native-platform-override to v1.9.12
148
+
149
+ ## 0.0.0-canary.204
150
+
151
+ Sat, 01 Jul 2023 05:14:41 GMT
152
+
153
+ ### Changes
154
+
155
+ - integrate 6/16 (tatianakapos@microsoft.com)
156
+ - Bump @rnw-scripts/eslint-config to v1.2.1
157
+ - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.4
158
+ - Bump @rnw-scripts/just-task to v2.3.12
159
+ - Bump react-native-platform-override to v1.9.11
160
+
161
+ ## 0.0.0-canary.203
162
+
163
+ Fri, 16 Jun 2023 05:14:19 GMT
164
+
165
+ ### Changes
166
+
167
+ - Add support for more aria props (30809111+acoates-ms@users.noreply.github.com)
168
+
169
+ ## 0.0.0-canary.202
170
+
171
+ Tue, 13 Jun 2023 05:15:41 GMT
172
+
173
+ ### Changes
174
+
175
+ - Bump @rnw-scripts/eslint-config to v1.2.0
176
+ - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.3
177
+ - Bump react-native-platform-override to v1.9.10
178
+
179
+ ## 0.0.0-canary.201
180
+
181
+ Fri, 09 Jun 2023 05:15:17 GMT
92
182
 
93
183
  ### Changes
94
184
 
95
- - Export ITouchableWin32State (30809111+acoates-ms@users.noreply.github.com)
96
- - Fix various text properties not being forwarded to native (30809111+acoates-ms@users.noreply.github.com)
97
185
  - Type definition files shouldnt use win32 extension (30809111+acoates-ms@users.noreply.github.com)
98
- - Add eventPhase to IHandledKeyboardEvent (30809111+acoates-ms@users.noreply.github.com)
186
+ - Fix various text properties not being forwarded to native (30809111+acoates-ms@users.noreply.github.com)
187
+
188
+ ## 0.0.0-canary.200
189
+
190
+ Thu, 08 Jun 2023 05:15:28 GMT
191
+
192
+ ### Changes
193
+
194
+ - Add missing eventPhase on IHandledKeyboardEvent (30809111+acoates-ms@users.noreply.github.com)
195
+ - Export ITouchableWin32State (30809111+acoates-ms@users.noreply.github.com)
196
+
197
+ ## 0.0.0-canary.199
198
+
199
+ Wed, 07 Jun 2023 05:16:10 GMT
200
+
201
+ ### Changes
99
202
 
100
- ## 0.72.0-preview.4
203
+ - integrate RN Nightly 6/1/23 (tatianakapos@microsoft.com)
204
+ - Bump @rnw-scripts/just-task to v2.3.11
205
+ - Bump react-native-platform-override to v1.9.9
101
206
 
102
- Mon, 22 May 2023 15:16:17 GMT
207
+ ## 0.0.0-canary.198
208
+
209
+ Tue, 06 Jun 2023 19:06:43 GMT
103
210
 
104
211
  ### Changes
105
212
 
106
- - Merge rc3: (34109996+chiaramooney@users.noreply.github.com)
213
+ - integrate RN nightly 5/19/23 (tatianakapos@microsoft.com)
214
+ - Bump @rnw-scripts/just-task to v2.3.10
215
+ - Bump react-native-platform-override to v1.9.8
107
216
 
108
- ## 0.72.0-preview.3
217
+ ## 0.0.0-canary.197
109
218
 
110
- Mon, 15 May 2023 15:18:30 GMT
219
+ Tue, 23 May 2023 05:13:44 GMT
220
+
221
+ ### Changes
222
+
223
+ - RN integration 5/5/23 (tatianakapos@microsoft.com)
224
+
225
+ ## 0.0.0-canary.196
226
+
227
+ Tue, 16 May 2023 05:16:29 GMT
228
+
229
+ ### Changes
230
+
231
+ - Integrate 4/28 (34109996+chiaramooney@users.noreply.github.com)
232
+ - Bump @rnw-scripts/just-task to v2.3.9
233
+ - Bump react-native-platform-override to v1.9.7
234
+
235
+ ## 0.0.0-canary.195
236
+
237
+ Fri, 12 May 2023 05:14:33 GMT
111
238
 
112
239
  ### Changes
113
240
 
114
241
  - Export additional TS types for back compat (30809111+acoates-ms@users.noreply.github.com)
115
242
 
116
- ## 0.72.0-preview.2
243
+ ## 0.0.0-canary.194
244
+
245
+ Mon, 08 May 2023 17:41:03 GMT
246
+
247
+ ### Changes
248
+
249
+ - Fix typos and add `cspell` configuration (jthysell@microsoft.com)
250
+ - Bump @rnw-scripts/just-task to v2.3.8
251
+ - Bump react-native-platform-override to v1.9.6
252
+
253
+ ## 0.0.0-canary.193
254
+
255
+ Wed, 03 May 2023 19:30:16 GMT
256
+
257
+ ### Changes
258
+
259
+ - Simplify ViewWin32 focus, now devmain properly implements UIManger.focus (30809111+acoates-ms@users.noreply.github.com)
260
+
261
+ ## 0.0.0-canary.192
262
+
263
+ Tue, 25 Apr 2023 05:16:56 GMT
264
+
265
+ ### Changes
266
+
267
+ - Update Node to 16 (34109996+chiaramooney@users.noreply.github.com)
268
+ - Integrate 4/13 (34109996+chiaramooney@users.noreply.github.com)
269
+ - Bump @rnw-scripts/eslint-config to v1.1.16
270
+ - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.2
271
+ - Bump @rnw-scripts/just-task to v2.3.7
272
+ - Bump react-native-platform-override to v1.9.5
273
+
274
+ ## 0.0.0-canary.191
117
275
 
118
- Thu, 04 May 2023 20:58:53 GMT
276
+ Thu, 13 Apr 2023 05:14:28 GMT
119
277
 
120
278
  ### Changes
121
279
 
122
- - Backport Node 16 (34109996+chiaramooney@users.noreply.github.com)
123
- - Fix ref's on ViewWin32 (enables ViewWin32.focus() calls to work again) (30809111+acoates-ms@users.noreply.github.com)
280
+ - Update TextInput.win32 to align with core (30809111+acoates-ms@users.noreply.github.com)
124
281
 
125
- ## 0.72.0-preview.1
282
+ ## 0.0.0-canary.190
126
283
 
127
- Mon, 01 May 2023 16:43:57 GMT
284
+ Sat, 08 Apr 2023 05:13:11 GMT
128
285
 
129
286
  ### Changes
130
287
 
131
- - Promote 0.72 to preview (34109996+chiaramooney@users.noreply.github.com)
288
+ - integrate rn 0.0.0-20230404-2109-62c4da142 (tatianakapos@microsoft.com)
132
289
 
133
290
  ## 0.0.0-canary.189
134
291
 
@@ -22,6 +22,7 @@ class PromiseTest extends React.Component<{...}> {
22
22
  shouldThrowAsync: boolean = false;
23
23
 
24
24
  componentDidMount() {
25
+ // $FlowFixMe[unused-promise]
25
26
  Promise.all([
26
27
  this.testShouldResolve(),
27
28
  this.testShouldReject(),
@@ -31,7 +31,7 @@ server.on('connection', ws => {
31
31
  console.log('WebSocket integration test server exit');
32
32
  process.exit(0);
33
33
  }
34
- ws.send(message + '_response');
34
+ ws.send(String(message) + '_response');
35
35
  });
36
36
 
37
37
  ws.send('hello');
@@ -21,7 +21,7 @@ import Platform from '../Utilities/Platform';
21
21
  import AnimatedImplementation from './AnimatedImplementation';
22
22
  import AnimatedMock from './AnimatedMock';
23
23
 
24
- const Animated = ((Platform.isTesting
24
+ const Animated = ((Platform.isDisableAnimations
25
25
  ? AnimatedMock
26
26
  : AnimatedImplementation): typeof AnimatedImplementation);
27
27
 
@@ -378,7 +378,7 @@ const parallel = function (
378
378
  }
379
379
 
380
380
  animations.forEach((animation, idx) => {
381
- const cb = function (endResult: EndResult | {finished: boolean}) {
381
+ const cb = function (endResult: EndResult) {
382
382
  hasEnded[idx] = true;
383
383
  doneCount++;
384
384
  if (doneCount === animations.length) {
@@ -28,9 +28,7 @@ import invariant from 'invariant';
28
28
 
29
29
  // TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.
30
30
  const NativeAnimatedModule =
31
- Platform.OS === 'ios' && global.RN$Bridgeless === true
32
- ? NativeAnimatedTurboModule
33
- : NativeAnimatedNonTurboModule;
31
+ NativeAnimatedNonTurboModule ?? NativeAnimatedTurboModule;
34
32
 
35
33
  let __nativeAnimatedNodeTagCount = 1; /* used for animated nodes */
36
34
  let __nativeAnimationIdCount = 1; /* used for started animations */
@@ -425,6 +423,9 @@ const SUPPORTED_TRANSFORMS = {
425
423
  rotateY: true,
426
424
  rotateZ: true,
427
425
  perspective: true,
426
+ skewX: true,
427
+ skewY: true,
428
+ matrix: ReactNativeFeatureFlags.shouldUseAnimatedObjectForTransform(),
428
429
  };
429
430
 
430
431
  const SUPPORTED_INTERPOLATION_PARAMS = {
@@ -451,19 +452,19 @@ function addWhitelistedInterpolationParam(param: string): void {
451
452
  }
452
453
 
453
454
  function isSupportedColorStyleProp(prop: string): boolean {
454
- return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);
455
+ return SUPPORTED_COLOR_STYLES[prop] === true;
455
456
  }
456
457
 
457
458
  function isSupportedStyleProp(prop: string): boolean {
458
- return SUPPORTED_STYLES.hasOwnProperty(prop);
459
+ return SUPPORTED_STYLES[prop] === true;
459
460
  }
460
461
 
461
462
  function isSupportedTransformProp(prop: string): boolean {
462
- return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);
463
+ return SUPPORTED_TRANSFORMS[prop] === true;
463
464
  }
464
465
 
465
466
  function isSupportedInterpolationParam(param: string): boolean {
466
- return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);
467
+ return SUPPORTED_INTERPOLATION_PARAMS[param] === true;
467
468
  }
468
469
 
469
470
  function validateTransform(
@@ -562,10 +563,13 @@ function transformDataType(value: number | string): number | string {
562
563
  if (typeof value !== 'string') {
563
564
  return value;
564
565
  }
565
- if (/deg$/.test(value)) {
566
+
567
+ // Normalize degrees and radians to a number expressed in radians
568
+ if (value.endsWith('deg')) {
566
569
  const degrees = parseFloat(value) || 0;
567
- const radians = (degrees * Math.PI) / 180.0;
568
- return radians;
570
+ return (degrees * Math.PI) / 180.0;
571
+ } else if (value.endsWith('rad')) {
572
+ return parseFloat(value) || 0;
569
573
  } else {
570
574
  return value;
571
575
  }
@@ -28,9 +28,7 @@ import invariant from 'invariant';
28
28
 
29
29
  // TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.
30
30
  const NativeAnimatedModule =
31
- Platform.OS === 'ios' && global.RN$Bridgeless === true
32
- ? NativeAnimatedTurboModule
33
- : NativeAnimatedNonTurboModule;
31
+ NativeAnimatedNonTurboModule ?? NativeAnimatedTurboModule;
34
32
 
35
33
  let __nativeAnimatedNodeTagCount = 1; /* used for animated nodes */
36
34
  let __nativeAnimationIdCount = 1; /* used for started animations */
@@ -427,6 +425,9 @@ const SUPPORTED_TRANSFORMS = {
427
425
  rotateY: true,
428
426
  rotateZ: true,
429
427
  perspective: true,
428
+ skewX: true,
429
+ skewY: true,
430
+ matrix: ReactNativeFeatureFlags.shouldUseAnimatedObjectForTransform(),
430
431
  };
431
432
 
432
433
  const SUPPORTED_INTERPOLATION_PARAMS = {
@@ -453,19 +454,19 @@ function addWhitelistedInterpolationParam(param: string): void {
453
454
  }
454
455
 
455
456
  function isSupportedColorStyleProp(prop: string): boolean {
456
- return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);
457
+ return SUPPORTED_COLOR_STYLES[prop] === true;
457
458
  }
458
459
 
459
460
  function isSupportedStyleProp(prop: string): boolean {
460
- return SUPPORTED_STYLES.hasOwnProperty(prop);
461
+ return SUPPORTED_STYLES[prop] === true;
461
462
  }
462
463
 
463
464
  function isSupportedTransformProp(prop: string): boolean {
464
- return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);
465
+ return SUPPORTED_TRANSFORMS[prop] === true;
465
466
  }
466
467
 
467
468
  function isSupportedInterpolationParam(param: string): boolean {
468
- return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);
469
+ return SUPPORTED_INTERPOLATION_PARAMS[param] === true;
469
470
  }
470
471
 
471
472
  function validateTransform(
@@ -564,10 +565,13 @@ function transformDataType(value: number | string): number | string {
564
565
  if (typeof value !== 'string') {
565
566
  return value;
566
567
  }
567
- if (/deg$/.test(value)) {
568
+
569
+ // Normalize degrees and radians to a number expressed in radians
570
+ if (value.endsWith('deg')) {
568
571
  const degrees = parseFloat(value) || 0;
569
- const radians = (degrees * Math.PI) / 180.0;
570
- return radians;
572
+ return (degrees * Math.PI) / 180.0;
573
+ } else if (value.endsWith('rad')) {
574
+ return parseFloat(value) || 0;
571
575
  } else {
572
576
  return value;
573
577
  }
@@ -590,8 +594,8 @@ export default {
590
594
  assertNativeAnimatedModule,
591
595
  shouldUseNativeDriver,
592
596
  transformDataType,
593
- // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppresion
594
- // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppresion
597
+ // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppression
598
+ // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppression
595
599
  get nativeEventEmitter(): NativeEventEmitter {
596
600
  if (!nativeEventEmitter) {
597
601
  // $FlowFixMe[underconstrained-implicit-instantiation]
@@ -11,8 +11,9 @@
11
11
  import type {TurboModule} from '../TurboModule/RCTExport';
12
12
 
13
13
  import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
14
+ import shouldUseTurboAnimatedModule from './shouldUseTurboAnimatedModule';
14
15
 
15
- type EndResult = {finished: boolean, ...};
16
+ type EndResult = {finished: boolean, value?: number, ...};
16
17
  type EndCallback = (result: EndResult) => void;
17
18
  type SaveValueCallback = (value: number) => void;
18
19
 
@@ -70,4 +71,7 @@ export interface Spec extends TurboModule {
70
71
  +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array<any>) => void;
71
72
  }
72
73
 
73
- export default (TurboModuleRegistry.get<Spec>('NativeAnimatedModule'): ?Spec);
74
+ const NativeModule: ?Spec = !shouldUseTurboAnimatedModule()
75
+ ? TurboModuleRegistry.get<Spec>('NativeAnimatedModule')
76
+ : null;
77
+ export default NativeModule;
@@ -11,8 +11,9 @@
11
11
  import type {TurboModule} from '../TurboModule/RCTExport';
12
12
 
13
13
  import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
14
+ import shouldUseTurboAnimatedModule from './shouldUseTurboAnimatedModule';
14
15
 
15
- type EndResult = {finished: boolean, ...};
16
+ type EndResult = {finished: boolean, value?: number, ...};
16
17
  type EndCallback = (result: EndResult) => void;
17
18
  type SaveValueCallback = (value: number) => void;
18
19
 
@@ -70,6 +71,8 @@ export interface Spec extends TurboModule {
70
71
  +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array<any>) => void;
71
72
  }
72
73
 
73
- export default (TurboModuleRegistry.get<Spec>(
74
- 'NativeAnimatedTurboModule',
75
- ): ?Spec);
74
+ const NativeModule: ?Spec = shouldUseTurboAnimatedModule()
75
+ ? TurboModuleRegistry.get<Spec>('NativeAnimatedTurboModule')
76
+ : null;
77
+
78
+ export default NativeModule;
@@ -11,11 +11,16 @@
11
11
  'use strict';
12
12
 
13
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
+ import type AnimatedNode from '../nodes/AnimatedNode';
14
15
  import type AnimatedValue from '../nodes/AnimatedValue';
15
16
 
17
+ import Platform from '../../Utilities/Platform';
16
18
  import NativeAnimatedHelper from '../NativeAnimatedHelper';
19
+ import AnimatedColor from '../nodes/AnimatedColor';
20
+ import AnimatedProps from '../nodes/AnimatedProps';
21
+ import AnimatedValueXY from '../nodes/AnimatedValueXY';
17
22
 
18
- export type EndResult = {finished: boolean, ...};
23
+ export type EndResult = {finished: boolean, value?: number, ...};
19
24
  export type EndCallback = (result: EndResult) => void;
20
25
 
21
26
  export type AnimationConfig = {
@@ -37,6 +42,7 @@ export default class Animation {
37
42
  __nativeId: number;
38
43
  __onEnd: ?EndCallback;
39
44
  __iterations: number;
45
+
40
46
  start(
41
47
  fromValue: number,
42
48
  onUpdate: (value: number) => void,
@@ -44,22 +50,55 @@ export default class Animation {
44
50
  previousAnimation: ?Animation,
45
51
  animatedValue: AnimatedValue,
46
52
  ): void {}
53
+
47
54
  stop(): void {
48
55
  if (this.__nativeId) {
49
56
  NativeAnimatedHelper.API.stopAnimation(this.__nativeId);
50
57
  }
51
58
  }
59
+
52
60
  __getNativeAnimationConfig(): any {
53
61
  // Subclasses that have corresponding animation implementation done in native
54
62
  // should override this method
55
63
  throw new Error('This animation type cannot be offloaded to native');
56
64
  }
65
+
57
66
  // Helper function for subclasses to make sure onEnd is only called once.
58
67
  __debouncedOnEnd(result: EndResult): void {
59
68
  const onEnd = this.__onEnd;
60
69
  this.__onEnd = null;
61
70
  onEnd && onEnd(result);
62
71
  }
72
+
73
+ __findAnimatedPropsNodes(node: AnimatedNode): Array<AnimatedProps> {
74
+ const result = [];
75
+
76
+ if (node instanceof AnimatedProps) {
77
+ result.push(node);
78
+ return result;
79
+ }
80
+
81
+ // Vectorized animations (animations on AnimatedValueXY, AnimatedColor nodes)
82
+ // are split into multiple animations for each component that execute in parallel.
83
+ // Calling update() on AnimatedProps when each animation completes results in
84
+ // potential flickering as all animations that are part of the vectorized animation
85
+ // may not have completed yet. For example, only the animation for the red channel of
86
+ // an animating color may have been completed, resulting in a temporary red color
87
+ // being rendered. So, for now, ignore AnimatedProps that use a vectorized animation.
88
+ if (
89
+ Platform.OS === 'ios' &&
90
+ (node instanceof AnimatedValueXY || node instanceof AnimatedColor)
91
+ ) {
92
+ return result;
93
+ }
94
+
95
+ for (const child of node.__getChildren()) {
96
+ result.push(...this.__findAnimatedPropsNodes(child));
97
+ }
98
+
99
+ return result;
100
+ }
101
+
63
102
  __startNativeAnimation(animatedValue: AnimatedValue): void {
64
103
  const startNativeAnimationWaitId = `${startNativeAnimationNextId}:startAnimation`;
65
104
  startNativeAnimationNextId += 1;
@@ -74,8 +113,23 @@ export default class Animation {
74
113
  this.__nativeId,
75
114
  animatedValue.__getNativeTag(),
76
115
  config,
77
- // $FlowFixMe[method-unbinding] added when improving typing for this parameters
78
- this.__debouncedOnEnd.bind(this),
116
+ result => {
117
+ this.__debouncedOnEnd(result);
118
+
119
+ // When using natively driven animations, once the animation completes,
120
+ // we need to ensure that the JS side nodes are synced with the updated
121
+ // values.
122
+ const {value} = result;
123
+ if (value != null) {
124
+ animatedValue.__onAnimatedValueUpdateReceived(value);
125
+
126
+ // Once the JS side node is synced with the updated values, trigger an
127
+ // update on the AnimatedProps nodes to call any registered callbacks.
128
+ this.__findAnimatedPropsNodes(animatedValue).forEach(node =>
129
+ node.update(),
130
+ );
131
+ }
132
+ },
79
133
  );
80
134
  } catch (e) {
81
135
  throw e;