@office-iss/react-native-win32 0.68.0 → 0.69.0-preview.3

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 (183) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.flowconfig +1 -3
  3. package/CHANGELOG.json +386 -32
  4. package/CHANGELOG.md +166 -19
  5. package/IntegrationTests/BUCK +4 -1
  6. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
  7. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  8. package/Libraries/Alert/Alert.win32.js +1 -1
  9. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  10. package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
  11. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  12. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  13. package/Libraries/Animated/animations/TimingAnimation.js +6 -11
  14. package/Libraries/Animated/createAnimatedComponent.js +2 -2
  15. package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
  16. package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
  17. package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
  18. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  19. package/Libraries/AppState/AppState.js +1 -1
  20. package/Libraries/Blob/URL.js +7 -1
  21. package/Libraries/Components/Button.js +3 -0
  22. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
  23. package/Libraries/Components/Pressable/Pressable.js +3 -3
  24. package/Libraries/Components/Pressable/Pressable.win32.js +3 -3
  25. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
  26. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
  27. package/Libraries/Components/ScrollView/ScrollView.js +1 -1
  28. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
  29. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
  30. package/Libraries/Components/Slider/Slider.js +0 -2
  31. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
  32. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  33. package/Libraries/Components/Switch/Switch.js +11 -1
  34. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
  35. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
  36. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
  37. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
  38. package/Libraries/Components/TextInput/TextInput.js +1 -8
  39. package/Libraries/Components/TextInput/TextInputState.js +10 -2
  40. package/Libraries/Components/TextInput/TextInputState.win32.js +10 -2
  41. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  42. package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
  43. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
  44. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
  45. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
  46. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +3 -1
  47. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  48. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
  49. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  50. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
  51. package/Libraries/Components/View/View.win32.js +33 -1
  52. package/Libraries/Components/View/ViewNativeComponent.js +68 -8
  53. package/Libraries/Components/View/ViewPropTypes.js +36 -4
  54. package/Libraries/Components/View/ViewPropTypes.win32.js +36 -4
  55. package/Libraries/Components/View/ViewWin32.Props.d.ts +1 -1
  56. package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
  57. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  58. package/Libraries/Core/ExceptionsManager.js +1 -1
  59. package/Libraries/Core/RawEventEmitter.js +38 -0
  60. package/Libraries/Core/ReactNativeVersion.js +2 -2
  61. package/Libraries/Core/polyfillPromise.js +32 -0
  62. package/Libraries/Core/setUpReactDevTools.js +3 -2
  63. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  64. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  65. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
  66. package/Libraries/Events/CustomEvent.js +32 -0
  67. package/Libraries/Events/EventPolyfill.js +239 -0
  68. package/Libraries/Image/Image.android.js +0 -6
  69. package/Libraries/Image/Image.ios.js +0 -6
  70. package/Libraries/Image/Image.win32.js +2 -8
  71. package/Libraries/Image/ImageViewNativeComponent.js +18 -3
  72. package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
  73. package/Libraries/Image/resolveAssetSource.win32.js +1 -1
  74. package/Libraries/Inspector/Inspector.js +2 -4
  75. package/Libraries/Inspector/Inspector.win32.js +7 -9
  76. package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
  77. package/Libraries/Interaction/InteractionManager.js +1 -12
  78. package/Libraries/Interaction/TaskQueue.js +5 -4
  79. package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
  80. package/Libraries/Linking/Linking.js +1 -1
  81. package/Libraries/Lists/FlatList.js +27 -6
  82. package/Libraries/Lists/VirtualizedList.js +71 -55
  83. package/Libraries/Lists/VirtualizedListContext.js +7 -3
  84. package/Libraries/Lists/VirtualizedSectionList.js +2 -2
  85. package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
  86. package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
  87. package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
  88. package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
  89. package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +92 -43
  90. package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +16 -14
  91. package/Libraries/LogBox/Data/LogBoxData.js +2 -2
  92. package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
  93. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  94. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  95. package/Libraries/LogBox/LogBox.js +2 -21
  96. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
  97. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
  98. package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
  99. package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.win32.js +334 -0
  101. package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
  102. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
  103. package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
  104. package/Libraries/NativeComponent/ViewConfig.js +4 -4
  105. package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
  106. package/Libraries/Network/FormData.js +7 -1
  107. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  108. package/Libraries/Pressability/Pressability.js +115 -46
  109. package/Libraries/Pressability/Pressability.win32.js +174 -69
  110. package/Libraries/Pressability/PressabilityDebug.js +5 -9
  111. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  112. package/Libraries/ReactNative/AppContainer.js +1 -1
  113. package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
  114. package/Libraries/ReactNative/PaperUIManager.win32.js +5 -5
  115. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
  116. package/Libraries/ReactNative/UIManager.js +2 -3
  117. package/Libraries/ReactNative/renderApplication.js +4 -0
  118. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
  119. package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
  120. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
  121. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
  123. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
  124. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
  125. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  126. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
  127. package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
  128. package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
  129. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  130. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  131. package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
  132. package/Libraries/Text/Text.js +13 -7
  133. package/Libraries/Text/TextNativeComponent.js +2 -0
  134. package/Libraries/Text/TextNativeComponent.win32.js +2 -0
  135. package/Libraries/Text/TextProps.js +10 -0
  136. package/Libraries/Types/CoreEventTypes.js +13 -1
  137. package/Libraries/Types/CoreEventTypes.win32.js +26 -1
  138. package/Libraries/Utilities/Appearance.js +0 -8
  139. package/Libraries/Utilities/HMRClient.js +1 -1
  140. package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
  141. package/Libraries/Utilities/codegenNativeComponent.js +16 -6
  142. package/Libraries/Utilities/stringifySafe.js +4 -1
  143. package/Libraries/Utilities/useColorScheme.js +9 -15
  144. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
  145. package/Libraries/WebSocket/WebSocket.js +1 -1
  146. package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
  147. package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
  148. package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
  149. package/flow/{use-subscription.js → use-sync-external-store.js} +4 -4
  150. package/index.js +30 -25
  151. package/index.win32.js +30 -25
  152. package/jest/preprocessor.js +24 -107
  153. package/jest/preprocessor_DO_NOT_USE.js +122 -0
  154. package/metro.config.js +3 -47
  155. package/overrides.json +39 -46
  156. package/package.json +32 -29
  157. package/rntypes/index.d.ts +19 -7
  158. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +1 -1
  159. package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +3 -1
  160. package/src/Libraries/Components/View/ViewWin32.Props.ts +1 -0
  161. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +427 -0
  162. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +391 -0
  163. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizeUtils-test.js.snap +3 -0
  164. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +4565 -0
  165. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +1153 -0
  166. package/src/rntypes/index.d.ts +19 -7
  167. package/typings-index.js +5 -1
  168. package/typings-index.js.map +1 -1
  169. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
  170. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
  171. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  172. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +0 -45
  173. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
  174. package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +0 -401
  175. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
  176. package/Libraries/ReactNative/UIManagerInjection.js +0 -15
  177. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
  178. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
  179. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
  180. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
  181. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
  182. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
  183. package/flow/Promise.js +0 -47
package/CHANGELOG.md CHANGED
@@ -1,45 +1,192 @@
1
1
  # Change Log - @office-iss/react-native-win32
2
2
 
3
- This log was last generated on Mon, 04 Apr 2022 15:11:23 GMT and should not be manually modified.
3
+ This log was last generated on Mon, 06 Jun 2022 15:08:42 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## 0.68.0
7
+ ## 0.69.0-preview.3
8
8
 
9
- Mon, 04 Apr 2022 15:11:23 GMT
9
+ Mon, 06 Jun 2022 15:08:42 GMT
10
10
 
11
- ### Patches
11
+ ### Changes
12
12
 
13
- - Bump RN Dependency (34109996+chiaramooney@users.noreply.github.com)
14
- - Promote 0.68 to latest (34109996+chiaramooney@users.noreply.github.com)
15
- - Bump @react-native-windows/virtualized-list to v0.68.0
13
+ - Bump @react-native-windows/virtualized-list to v0.69.0-preview.2
16
14
 
17
- ## 0.68.0-preview.3
15
+ ## 0.69.0-preview.2
18
16
 
19
- Mon, 21 Mar 2022 15:08:45 GMT
17
+ Mon, 16 May 2022 15:09:01 GMT
20
18
 
21
19
  ### Changes
22
20
 
23
- - Integrate 0.68.0-rc.2 (34109996+chiaramooney@users.noreply.github.com)
24
- - Bump @react-native-windows/virtualized-list to v0.68.0-preview.3
21
+ - Upgrade to @react-native-community/cli@8.0.0-alpha.6 (jthysell@microsoft.com)
25
22
 
26
- ## 0.68.0-preview.2
23
+ ## 0.69.0-preview.1
27
24
 
28
- Mon, 14 Feb 2022 16:08:39 GMT
25
+ Wed, 04 May 2022 23:30:22 GMT
29
26
 
30
27
  ### Changes
31
28
 
32
- - [0.68] Bump minimum Node version to 14 (jthysell@microsoft.com)
33
- - Bump @react-native-windows/virtualized-list to v0.68.0-preview.2
29
+ - Promote 0.69 to preview (jthysell@microsoft.com)
30
+ - Bump @react-native-windows/virtualized-list to v0.69.0-preview.1
34
31
 
35
- ## 0.68.0-preview.1
32
+ ## 0.0.0-canary.148
36
33
 
37
- Mon, 07 Feb 2022 16:09:26 GMT
34
+ Mon, 02 May 2022 21:26:42 GMT
38
35
 
39
36
  ### Changes
40
37
 
41
- - Promote 0.68 to preview (ngerlem@microsoft.com)
42
- - Bump @react-native-windows/virtualized-list to v0.68.0-preview.1
38
+ - Implement no-hide-accessibility (34109996+chiaramooney@users.noreply.github.com)
39
+ - Add ListItem as an accessibilityRole type and add a List, ListItem, ControllerFor test example (patboyd@microsoft.com)
40
+
41
+ ## 0.0.0-canary.147
42
+
43
+ Wed, 27 Apr 2022 05:10:23 GMT
44
+
45
+ ### Changes
46
+
47
+ - Integrate 4/15 Test (34109996+chiaramooney@users.noreply.github.com)
48
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.41
49
+ - Bump @rnw-scripts/eslint-config to v1.1.12
50
+ - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.0.6
51
+ - Bump react-native-platform-override to v1.6.11
52
+
53
+ ## 0.0.0-canary.146
54
+
55
+ Thu, 21 Apr 2022 05:09:33 GMT
56
+
57
+ ### Changes
58
+
59
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.40
60
+ - Bump react-native-platform-override to v1.6.10
61
+
62
+ ## 0.0.0-canary.145
63
+
64
+ Thu, 14 Apr 2022 05:09:19 GMT
65
+
66
+ ### Changes
67
+
68
+ - Integrate RN Nightly Build 4/11 (34109996+chiaramooney@users.noreply.github.com)
69
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.39
70
+
71
+ ## 0.0.0-canary.144
72
+
73
+ Tue, 12 Apr 2022 05:10:37 GMT
74
+
75
+ ### Changes
76
+
77
+ - Fix Overrides (34109996+chiaramooney@users.noreply.github.com)
78
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.38
79
+ - Bump react-native-platform-override to v1.6.9
80
+
81
+ ## 0.0.0-canary.143
82
+
83
+ Sat, 09 Apr 2022 05:10:10 GMT
84
+
85
+ ### Changes
86
+
87
+ - integrate 4/4 (email not defined)
88
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.37
89
+
90
+ ## 0.0.0-canary.142
91
+
92
+ Tue, 05 Apr 2022 05:10:13 GMT
93
+
94
+ ### Changes
95
+
96
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.36
97
+ - Bump react-native-platform-override to v1.6.8
98
+
99
+ ## 0.0.0-canary.141
100
+
101
+ Fri, 01 Apr 2022 05:09:58 GMT
102
+
103
+ ### Changes
104
+
105
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.35
106
+ - Bump react-native-platform-override to v1.6.7
107
+
108
+ ## 0.0.0-canary.140
109
+
110
+ Thu, 31 Mar 2022 05:10:18 GMT
111
+
112
+ ### Changes
113
+
114
+ - Integrate 3/11 (34109996+chiaramooney@users.noreply.github.com)
115
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.34
116
+
117
+ ## 0.0.0-canary.139
118
+
119
+ Tue, 29 Mar 2022 05:09:49 GMT
120
+
121
+ ### Changes
122
+
123
+ - Integrate 3/11 (34109996+chiaramooney@users.noreply.github.com)
124
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.33
125
+
126
+ ## 0.0.0-canary.138
127
+
128
+ Thu, 17 Mar 2022 05:09:18 GMT
129
+
130
+ ### Changes
131
+
132
+ - integrates 2/27/22 (email not defined)
133
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.32
134
+
135
+ ## 0.0.0-canary.137
136
+
137
+ Wed, 09 Mar 2022 06:09:07 GMT
138
+
139
+ ### Changes
140
+
141
+ - Upgrade @types/react-native (53799235+ZihanChen-MSFT@users.noreply.github.com)
142
+
143
+ ## 0.0.0-canary.136
144
+
145
+ Sat, 05 Mar 2022 06:08:58 GMT
146
+
147
+ ### Changes
148
+
149
+ - integrate 2/13/2022 Nightly RN Build (email not defined)
150
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.31
151
+
152
+ ## 0.0.0-canary.135
153
+
154
+ Sun, 13 Feb 2022 06:08:34 GMT
155
+
156
+ ### Changes
157
+
158
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.30
159
+ - Bump react-native-platform-override to v1.6.6
160
+
161
+ ## 0.0.0-canary.134
162
+
163
+ Sat, 12 Feb 2022 06:08:36 GMT
164
+
165
+ ### Changes
166
+
167
+ - Share monorepo-friendly metro config between dev packages (ngerlem@microsoft.com)
168
+
169
+ ## 0.0.0-canary.133
170
+
171
+ Fri, 11 Feb 2022 06:08:20 GMT
172
+
173
+ ### Changes
174
+
175
+ - Integrate Feb 6 Nightly RN Build (ngerlem@microsoft.com)
176
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.29
177
+ - Bump react-native-platform-override to v1.6.5
178
+
179
+ ## 0.0.0-canary.132
180
+
181
+ Wed, 09 Feb 2022 06:09:35 GMT
182
+
183
+ ### Changes
184
+
185
+ - Bump minimum Node version to 14 (jthysell@microsoft.com)
186
+ - Bump @react-native-windows/virtualized-list to v0.0.0-canary.28
187
+ - Bump @rnw-scripts/eslint-config to v1.1.11
188
+ - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.0.5
189
+ - Bump react-native-platform-override to v1.6.5
43
190
 
44
191
  ## 0.0.0-canary.131
45
192
 
@@ -17,7 +17,10 @@ rn_library(
17
17
  "websocket_integration_test_server.js",
18
18
  ],
19
19
  ),
20
- labels = ["supermodule:xplat/default/public.react_native.tests"],
20
+ labels = [
21
+ "pfh:ReactNative_CommonInfrastructurePlaceholder",
22
+ "supermodule:xplat/default/public.react_native.tests",
23
+ ],
21
24
  skip_processors = True,
22
25
  visibility = ["PUBLIC"],
23
26
  deps = [
@@ -143,6 +143,13 @@ const ActionSheetIOS = {
143
143
  successCallback,
144
144
  );
145
145
  },
146
+
147
+ dismissActionSheet: () => {
148
+ invariant(RCTActionSheetManager, "ActionSheetManager doesn't exist");
149
+ if (typeof RCTActionSheetManager.dismissActionSheet === 'function') {
150
+ RCTActionSheetManager.dismissActionSheet();
151
+ }
152
+ },
146
153
  };
147
154
 
148
155
  module.exports = ActionSheetIOS;
@@ -47,6 +47,7 @@ export interface Spec extends TurboModule {
47
47
  |}) => void,
48
48
  successCallback: (completed: boolean, activityType: ?string) => void,
49
49
  ) => void;
50
+ +dismissActionSheet?: () => void;
50
51
  }
51
52
 
52
53
  export default (TurboModuleRegistry.get<Spec>('ActionSheetManager'): ?Spec);
@@ -50,7 +50,7 @@ class Alert {
50
50
  message || '',
51
51
  buttons,
52
52
  options,
53
- (buttonIndex) => {
53
+ buttonIndex => {
54
54
  if (
55
55
  buttonIndex >= 0 &&
56
56
  buttons &&
@@ -91,7 +91,7 @@ const diffClamp = function (
91
91
 
92
92
  const _combineCallbacks = function (
93
93
  callback: ?EndCallback,
94
- config: {...AnimationConfig, ...},
94
+ config: $ReadOnly<{...AnimationConfig, ...}>,
95
95
  ) {
96
96
  if (callback && config.onComplete) {
97
97
  return (...args) => {
@@ -90,6 +90,18 @@ const API = {
90
90
  NativeAnimatedModule.createAnimatedNode(tag, config),
91
91
  );
92
92
  },
93
+ updateAnimatedNodeConfig: function (
94
+ tag: number,
95
+ config: AnimatedNodeConfig,
96
+ ): void {
97
+ invariant(NativeAnimatedModule, 'Native animated module is not available');
98
+ if (typeof NativeAnimatedModule.updateAnimatedNodeConfig === 'function') {
99
+ API.queueOperation(() =>
100
+ // $FlowIgnore[not-a-function] - checked above
101
+ NativeAnimatedModule.updateAnimatedNodeConfig(tag, config),
102
+ );
103
+ }
104
+ },
93
105
  startListeningToAnimatedNodeValue: function (tag: number) {
94
106
  invariant(NativeAnimatedModule, 'Native animated module is not available');
95
107
  API.queueOperation(() =>
@@ -222,22 +234,36 @@ const API = {
222
234
  /**
223
235
  * Styles allowed by the native animated implementation.
224
236
  *
225
- * In general native animated implementation should support any numeric property that doesn't need
226
- * to be updated through the shadow view hierarchy (all non-layout properties).
237
+ * In general native animated implementation should support any numeric or color property that
238
+ * doesn't need to be updated through the shadow view hierarchy (all non-layout properties).
227
239
  */
240
+ const SUPPORTED_COLOR_STYLES = {
241
+ backgroundColor: true,
242
+ borderBottomColor: true,
243
+ borderColor: true,
244
+ borderEndColor: true,
245
+ borderLeftColor: true,
246
+ borderRightColor: true,
247
+ borderStartColor: true,
248
+ borderTopColor: true,
249
+ color: true,
250
+ tintColor: true,
251
+ };
252
+
228
253
  const SUPPORTED_STYLES = {
229
- opacity: true,
230
- transform: true,
231
- borderRadius: true,
254
+ ...SUPPORTED_COLOR_STYLES,
232
255
  borderBottomEndRadius: true,
233
256
  borderBottomLeftRadius: true,
234
257
  borderBottomRightRadius: true,
235
258
  borderBottomStartRadius: true,
259
+ borderRadius: true,
236
260
  borderTopEndRadius: true,
237
261
  borderTopLeftRadius: true,
238
262
  borderTopRightRadius: true,
239
263
  borderTopStartRadius: true,
240
264
  elevation: true,
265
+ opacity: true,
266
+ transform: true,
241
267
  zIndex: true,
242
268
  /* ios styles */
243
269
  shadowOpacity: true,
@@ -282,6 +308,22 @@ function addWhitelistedInterpolationParam(param: string): void {
282
308
  SUPPORTED_INTERPOLATION_PARAMS[param] = true;
283
309
  }
284
310
 
311
+ function isSupportedColorStyleProp(prop: string): boolean {
312
+ return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);
313
+ }
314
+
315
+ function isSupportedStyleProp(prop: string): boolean {
316
+ return SUPPORTED_STYLES.hasOwnProperty(prop);
317
+ }
318
+
319
+ function isSupportedTransformProp(prop: string): boolean {
320
+ return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);
321
+ }
322
+
323
+ function isSupportedInterpolationParam(param: string): boolean {
324
+ return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);
325
+ }
326
+
285
327
  function validateTransform(
286
328
  configs: Array<
287
329
  | {
@@ -299,7 +341,7 @@ function validateTransform(
299
341
  >,
300
342
  ): void {
301
343
  configs.forEach(config => {
302
- if (!SUPPORTED_TRANSFORMS.hasOwnProperty(config.property)) {
344
+ if (!isSupportedTransformProp(config.property)) {
303
345
  throw new Error(
304
346
  `Property '${config.property}' is not supported by native animated module`,
305
347
  );
@@ -309,7 +351,7 @@ function validateTransform(
309
351
 
310
352
  function validateStyles(styles: {[key: string]: ?number, ...}): void {
311
353
  for (const key in styles) {
312
- if (!SUPPORTED_STYLES.hasOwnProperty(key)) {
354
+ if (!isSupportedStyleProp(key)) {
313
355
  throw new Error(
314
356
  `Style property '${key}' is not supported by native animated module`,
315
357
  );
@@ -319,7 +361,7 @@ function validateStyles(styles: {[key: string]: ?number, ...}): void {
319
361
 
320
362
  function validateInterpolation(config: InterpolationConfigType): void {
321
363
  for (const key in config) {
322
- if (!SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(key)) {
364
+ if (!isSupportedInterpolationParam(key)) {
323
365
  throw new Error(
324
366
  `Interpolation property '${key}' is not supported by native animated module`,
325
367
  );
@@ -342,7 +384,7 @@ function assertNativeAnimatedModule(): void {
342
384
  let _warnedMissingNativeAnimated = false;
343
385
 
344
386
  function shouldUseNativeDriver(
345
- config: {...AnimationConfig, ...} | EventConfig,
387
+ config: $ReadOnly<{...AnimationConfig, ...}> | EventConfig,
346
388
  ): boolean {
347
389
  if (config.useNativeDriver == null) {
348
390
  console.warn(
@@ -385,6 +427,10 @@ function transformDataType(value: number | string): number | string {
385
427
 
386
428
  module.exports = {
387
429
  API,
430
+ isSupportedColorStyleProp,
431
+ isSupportedStyleProp,
432
+ isSupportedTransformProp,
433
+ isSupportedInterpolationParam,
388
434
  addWhitelistedStyleProp,
389
435
  addWhitelistedTransformProp,
390
436
  addWhitelistedInterpolationParam,
@@ -29,6 +29,7 @@ export interface Spec extends TurboModule {
29
29
  +startOperationBatch: () => void;
30
30
  +finishOperationBatch: () => void;
31
31
  +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;
32
+ +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;
32
33
  +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;
33
34
  +startListeningToAnimatedNodeValue: (tag: number) => void;
34
35
  +stopListeningToAnimatedNodeValue: (tag: number) => void;
@@ -29,6 +29,7 @@ export interface Spec extends TurboModule {
29
29
  +startOperationBatch: () => void;
30
30
  +finishOperationBatch: () => void;
31
31
  +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;
32
+ +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;
32
33
  +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;
33
34
  +startListeningToAnimatedNodeValue: (tag: number) => void;
34
35
  +stopListeningToAnimatedNodeValue: (tag: number) => void;
@@ -19,10 +19,11 @@ const {shouldUseNativeDriver} = require('../NativeAnimatedHelper');
19
19
 
20
20
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
21
21
  import type {AnimationConfig, EndCallback} from './Animation';
22
+ import type {RgbaValue} from '../nodes/AnimatedColor';
22
23
 
23
24
  import AnimatedColor from '../nodes/AnimatedColor';
24
25
 
25
- export type TimingAnimationConfig = {
26
+ export type TimingAnimationConfig = $ReadOnly<{
26
27
  ...AnimationConfig,
27
28
  toValue:
28
29
  | number
@@ -33,27 +34,21 @@ export type TimingAnimationConfig = {
33
34
  ...
34
35
  }
35
36
  | AnimatedValueXY
36
- | {
37
- r: number,
38
- g: number,
39
- b: number,
40
- a: number,
41
- ...
42
- }
37
+ | RgbaValue
43
38
  | AnimatedColor
44
39
  | AnimatedInterpolation,
45
40
  easing?: (value: number) => number,
46
41
  duration?: number,
47
42
  delay?: number,
48
- };
43
+ }>;
49
44
 
50
- export type TimingAnimationConfigSingle = {
45
+ export type TimingAnimationConfigSingle = $ReadOnly<{
51
46
  ...AnimationConfig,
52
47
  toValue: number | AnimatedValue | AnimatedInterpolation,
53
48
  easing?: (value: number) => number,
54
49
  duration?: number,
55
50
  delay?: number,
56
- };
51
+ }>;
57
52
 
58
53
  let _easeInOut;
59
54
  function easeInOut() {
@@ -24,8 +24,8 @@ const setAndForwardRef = require('../Utilities/setAndForwardRef');
24
24
  let animatedComponentNextId = 1;
25
25
 
26
26
  export type AnimatedComponentType<
27
- Props: {+[string]: mixed, ...},
28
- Instance,
27
+ -Props: {+[string]: mixed, ...},
28
+ +Instance = mixed,
29
29
  > = React.AbstractComponent<
30
30
  $ObjMap<
31
31
  Props &
@@ -14,12 +14,15 @@ import AnimatedValue from './AnimatedValue';
14
14
  import AnimatedWithChildren from './AnimatedWithChildren';
15
15
  import normalizeColor from '../../StyleSheet/normalizeColor';
16
16
  import {processColorObject} from '../../StyleSheet/PlatformColorValueTypes';
17
+ import NativeAnimatedHelper from '../NativeAnimatedHelper';
17
18
 
19
+ import type {PlatformConfig} from '../AnimatedPlatformConfig';
18
20
  import type {ColorValue} from '../../StyleSheet/StyleSheet';
19
21
  import type {NativeColorValue} from '../../StyleSheet/PlatformColorValueTypes';
22
+ import type {ProcessedColorValue} from '../../StyleSheet/processColor';
20
23
 
21
24
  type ColorListenerCallback = (value: string) => mixed;
22
- type RgbaValue = {
25
+ export type RgbaValue = {
23
26
  +r: number,
24
27
  +g: number,
25
28
  +b: number,
@@ -38,26 +41,37 @@ const defaultColor: RgbaValue = {r: 0, g: 0, b: 0, a: 1.0};
38
41
  let _uniqueId = 1;
39
42
 
40
43
  /* eslint no-bitwise: 0 */
41
- function processColor(color?: ?ColorValue): ?(RgbaValue | NativeColorValue) {
44
+ function processColor(
45
+ color?: ?(ColorValue | RgbaValue),
46
+ ): ?(RgbaValue | NativeColorValue) {
42
47
  if (color === undefined || color === null) {
43
48
  return null;
44
49
  }
45
50
 
46
- let normalizedColor = normalizeColor(color);
51
+ if (isRgbaValue(color)) {
52
+ // $FlowIgnore[incompatible-cast] - Type is verified above
53
+ return (color: RgbaValue);
54
+ }
55
+
56
+ let normalizedColor: ?ProcessedColorValue = normalizeColor(
57
+ // $FlowIgnore[incompatible-cast] - Type is verified above
58
+ (color: ColorValue),
59
+ );
47
60
  if (normalizedColor === undefined || normalizedColor === null) {
48
61
  return null;
49
62
  }
50
63
 
51
64
  if (typeof normalizedColor === 'object') {
52
- const processedColorObj = processColorObject(normalizedColor);
65
+ const processedColorObj: ?NativeColorValue =
66
+ processColorObject(normalizedColor);
53
67
  if (processedColorObj != null) {
54
68
  return processedColorObj;
55
69
  }
56
70
  } else if (typeof normalizedColor === 'number') {
57
- const r = (normalizedColor & 0xff000000) >>> 24;
58
- const g = (normalizedColor & 0x00ff0000) >>> 16;
59
- const b = (normalizedColor & 0x0000ff00) >>> 8;
60
- const a = (normalizedColor & 0x000000ff) / 255;
71
+ const r: number = (normalizedColor & 0xff000000) >>> 24;
72
+ const g: number = (normalizedColor & 0x00ff0000) >>> 16;
73
+ const b: number = (normalizedColor & 0x0000ff00) >>> 8;
74
+ const a: number = (normalizedColor & 0x000000ff) / 255;
61
75
 
62
76
  return {r, g, b, a};
63
77
  }
@@ -90,6 +104,7 @@ export default class AnimatedColor extends AnimatedWithChildren {
90
104
  g: AnimatedValue;
91
105
  b: AnimatedValue;
92
106
  a: AnimatedValue;
107
+ nativeColor: ?NativeColorValue;
93
108
  _listeners: {
94
109
  [key: string]: {
95
110
  r: string,
@@ -99,13 +114,12 @@ export default class AnimatedColor extends AnimatedWithChildren {
99
114
  ...
100
115
  },
101
116
  ...
102
- };
117
+ } = {};
103
118
 
104
119
  constructor(valueIn?: ?(RgbaValue | RgbaAnimatedValue | ColorValue)) {
105
120
  super();
106
121
  let value: RgbaValue | RgbaAnimatedValue | ColorValue =
107
- valueIn || defaultColor;
108
-
122
+ valueIn ?? defaultColor;
109
123
  if (isRgbaAnimatedValue(value)) {
110
124
  // $FlowIgnore[incompatible-cast] - Type is verified above
111
125
  const rgbaAnimatedValue: RgbaAnimatedValue = (value: RgbaAnimatedValue);
@@ -114,32 +128,65 @@ export default class AnimatedColor extends AnimatedWithChildren {
114
128
  this.b = rgbaAnimatedValue.b;
115
129
  this.a = rgbaAnimatedValue.a;
116
130
  } else {
117
- // Handle potential parsable string color or platform color object
118
- if (!isRgbaValue(value)) {
119
- // $FlowIgnore[incompatible-cast] - Type is verified via conditionals
120
- value = processColor((value: ColorValue)) || {r: 0, g: 0, b: 0, a: 1.0};
121
- // TODO: support platform color
131
+ const processedColor: RgbaValue | NativeColorValue =
132
+ // $FlowIgnore[incompatible-cast] - Type is verified above
133
+ processColor((value: ColorValue | RgbaValue)) ?? defaultColor;
134
+ let initColor: RgbaValue = defaultColor;
135
+ if (isRgbaValue(processedColor)) {
136
+ // $FlowIgnore[incompatible-cast] - Type is verified above
137
+ initColor = (processedColor: RgbaValue);
138
+ } else {
139
+ // $FlowIgnore[incompatible-cast] - Type is verified above
140
+ this.nativeColor = (processedColor: NativeColorValue);
122
141
  }
123
142
 
124
- // $FlowIgnore[incompatible-cast] - Type is verified via conditionals
125
- const rgbaValue: RgbaValue = (value: RgbaValue);
126
- this.r = new AnimatedValue(rgbaValue.r);
127
- this.g = new AnimatedValue(rgbaValue.g);
128
- this.b = new AnimatedValue(rgbaValue.b);
129
- this.a = new AnimatedValue(rgbaValue.a);
143
+ this.r = new AnimatedValue(initColor.r);
144
+ this.g = new AnimatedValue(initColor.g);
145
+ this.b = new AnimatedValue(initColor.b);
146
+ this.a = new AnimatedValue(initColor.a);
147
+
148
+ if (this.nativeColor) {
149
+ if (!this.__isNative) {
150
+ this.__makeNative();
151
+ }
152
+ }
130
153
  }
131
- this._listeners = {};
132
154
  }
133
155
 
134
156
  /**
135
157
  * Directly set the value. This will stop any animations running on the value
136
158
  * and update all the bound properties.
137
159
  */
138
- setValue(value: {r: number, g: number, b: number, a: number, ...}): void {
139
- this.r.setValue(value.r);
140
- this.g.setValue(value.g);
141
- this.b.setValue(value.b);
142
- this.a.setValue(value.a);
160
+ setValue(value: RgbaValue | ColorValue): void {
161
+ this.nativeColor = null;
162
+
163
+ const processedColor: RgbaValue | NativeColorValue =
164
+ processColor(value) ?? defaultColor;
165
+ if (isRgbaValue(processedColor)) {
166
+ // $FlowIgnore[incompatible-cast] - Type is verified above
167
+ const rgbaValue: RgbaValue = (processedColor: RgbaValue);
168
+ this.r.setValue(rgbaValue.r);
169
+ this.g.setValue(rgbaValue.g);
170
+ this.b.setValue(rgbaValue.b);
171
+ this.a.setValue(rgbaValue.a);
172
+ } else {
173
+ // $FlowIgnore[incompatible-cast] - Type is verified above
174
+ this.nativeColor = (processedColor: NativeColorValue);
175
+ }
176
+
177
+ if (this.nativeColor) {
178
+ if (!this.__isNative) {
179
+ this.__makeNative();
180
+ }
181
+
182
+ const nativeTag = this.__getNativeTag();
183
+ NativeAnimatedHelper.API.setWaitingForIdentifier(nativeTag.toString());
184
+ NativeAnimatedHelper.API.updateAnimatedNodeConfig(
185
+ nativeTag,
186
+ this.__getNativeConfig(),
187
+ );
188
+ NativeAnimatedHelper.API.unsetWaitingForIdentifier(nativeTag.toString());
189
+ }
143
190
  }
144
191
 
145
192
  /**
@@ -147,7 +194,7 @@ export default class AnimatedColor extends AnimatedWithChildren {
147
194
  * via `setValue`, an animation, or `Animated.event`. Useful for compensating
148
195
  * things like the start of a pan gesture.
149
196
  */
150
- setOffset(offset: {r: number, g: number, b: number, a: number, ...}): void {
197
+ setOffset(offset: RgbaValue): void {
151
198
  this.r.setOffset(offset.r);
152
199
  this.g.setOffset(offset.g);
153
200
  this.b.setOffset(offset.b);
@@ -263,4 +310,23 @@ export default class AnimatedColor extends AnimatedWithChildren {
263
310
  this.a.__removeChild(this);
264
311
  super.__detach();
265
312
  }
313
+
314
+ __makeNative(platformConfig: ?PlatformConfig) {
315
+ this.r.__makeNative(platformConfig);
316
+ this.g.__makeNative(platformConfig);
317
+ this.b.__makeNative(platformConfig);
318
+ this.a.__makeNative(platformConfig);
319
+ super.__makeNative(platformConfig);
320
+ }
321
+
322
+ __getNativeConfig(): {...} {
323
+ return {
324
+ type: 'color',
325
+ r: this.r.__getNativeTag(),
326
+ g: this.g.__getNativeTag(),
327
+ b: this.b.__getNativeTag(),
328
+ a: this.a.__getNativeTag(),
329
+ nativeColor: this.nativeColor,
330
+ };
331
+ }
266
332
  }