@office-iss/react-native-win32 0.0.0-canary.285 → 0.0.0-canary.287

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 (217) hide show
  1. package/.flowconfig +1 -1
  2. package/CHANGELOG.json +31 -1
  3. package/CHANGELOG.md +24 -8
  4. package/IntegrationTests/LayoutEventsTest.js +16 -11
  5. package/Libraries/Alert/Alert.js +51 -5
  6. package/Libraries/Alert/Alert.win32.js +50 -5
  7. package/Libraries/Animated/animations/Animation.js +1 -4
  8. package/Libraries/Animated/nodes/AnimatedObject.js +1 -0
  9. package/Libraries/AppState/AppState.js +24 -7
  10. package/Libraries/BatchedBridge/MessageQueue.js +3 -2
  11. package/Libraries/BatchedBridge/NativeModules.js +2 -1
  12. package/Libraries/Blob/Blob.js +1 -1
  13. package/Libraries/Blob/FileReader_old.js +9 -9
  14. package/Libraries/Blob/URL.js +1 -1
  15. package/Libraries/Blob/URLSearchParams.js +9 -9
  16. package/Libraries/Components/Button.js +3 -3
  17. package/Libraries/Components/Button.win32.js +3 -6
  18. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  19. package/Libraries/Components/Pressable/Pressable.js +9 -9
  20. package/Libraries/Components/Pressable/Pressable.win32.js +9 -9
  21. package/Libraries/Components/Pressable/useAndroidRippleForView.js +7 -7
  22. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +7 -1
  23. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  24. package/Libraries/Components/ScrollView/ScrollView.js +74 -59
  25. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +5 -5
  26. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +5 -2
  27. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -3
  28. package/Libraries/Components/Switch/Switch.js +2 -2
  29. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  30. package/Libraries/Components/TextInput/TextInput.flow.js +15 -13
  31. package/Libraries/Components/TextInput/TextInput.js +16 -14
  32. package/Libraries/Components/TextInput/TextInput.win32.js +16 -14
  33. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  34. package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
  35. package/Libraries/Components/Touchable/Touchable.js +16 -16
  36. package/Libraries/Components/Touchable/Touchable.win32.js +16 -16
  37. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  38. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +7 -7
  39. package/Libraries/Components/View/ReactNativeStyleAttributes.js +16 -2
  40. package/Libraries/Components/View/ViewAccessibility.js +243 -3
  41. package/Libraries/Components/View/ViewAccessibility.win32.js +243 -3
  42. package/Libraries/Components/View/ViewPropTypes.d.ts +14 -14
  43. package/Libraries/Components/View/ViewPropTypes.js +35 -226
  44. package/Libraries/Components/View/ViewPropTypes.win32.js +37 -229
  45. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  46. package/Libraries/Core/InitializeCore.js +2 -1
  47. package/Libraries/Core/ReactNativeVersion.js +1 -1
  48. package/Libraries/Core/Timers/JSTimers.js +6 -4
  49. package/Libraries/Core/setUpBatchedBridge.js +9 -5
  50. package/Libraries/Core/setUpDeveloperTools.js +3 -29
  51. package/Libraries/Core/setUpReactDevTools.js +1 -1
  52. package/Libraries/Core/setUpReactRefresh.js +1 -1
  53. package/Libraries/Core/setUpXHR.js +5 -2
  54. package/Libraries/EventEmitter/NativeEventEmitter.js +8 -2
  55. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +5 -4
  56. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -2
  57. package/Libraries/Events/CustomEvent.js +1 -1
  58. package/Libraries/Events/EventPolyfill.js +2 -2
  59. package/Libraries/Image/AssetSourceResolver.js +1 -1
  60. package/Libraries/Image/ImageProps.js +8 -5
  61. package/Libraries/Image/ImageViewNativeComponent.js +1 -1
  62. package/Libraries/Image/resolveAssetSource.win32.js +1 -1
  63. package/Libraries/Interaction/InteractionManager.js +1 -1
  64. package/Libraries/Interaction/InteractionManagerStub.js +9 -1
  65. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  66. package/Libraries/Interaction/PanResponder.js +32 -29
  67. package/Libraries/Interaction/TaskQueue.js +1 -1
  68. package/Libraries/LayoutAnimation/LayoutAnimation.js +18 -4
  69. package/Libraries/Lists/FillRateHelper.js +3 -3
  70. package/Libraries/Lists/FlatList.js +13 -13
  71. package/Libraries/Lists/SectionList.js +3 -1
  72. package/Libraries/Lists/SectionListModern.js +3 -1
  73. package/Libraries/Lists/ViewabilityHelper.js +3 -2
  74. package/Libraries/Lists/VirtualizeUtils.js +3 -3
  75. package/Libraries/Lists/VirtualizedList.js +5 -5
  76. package/Libraries/Lists/VirtualizedListContext.js +4 -2
  77. package/Libraries/Lists/VirtualizedSectionList.js +4 -2
  78. package/Libraries/LogBox/LogBox.js +9 -1
  79. package/Libraries/LogBox/UI/AnsiHighlight.js +7 -3
  80. package/Libraries/LogBox/UI/LogBoxButton.js +4 -2
  81. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -1
  82. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +11 -3
  83. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +2 -0
  84. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +8 -2
  85. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +8 -2
  86. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +2 -0
  87. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +4 -2
  88. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +3 -1
  89. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +3 -1
  90. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +2 -2
  91. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -3
  92. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -3
  93. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -2
  94. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +3 -1
  95. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +2 -0
  96. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +4 -1
  97. package/Libraries/Modal/Modal.js +74 -81
  98. package/Libraries/NativeComponent/BaseViewConfig.android.js +16 -6
  99. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -9
  100. package/Libraries/NativeComponent/BaseViewConfig.win32.js +19 -9
  101. package/Libraries/NativeComponent/StaticViewConfigValidator.js +5 -1
  102. package/Libraries/Network/FormData.js +1 -1
  103. package/Libraries/Network/XMLHttpRequest.js +5 -6
  104. package/Libraries/Network/XMLHttpRequest_new.js +3 -2
  105. package/Libraries/Network/XMLHttpRequest_old.js +3 -2
  106. package/Libraries/Network/convertRequestBody.js +4 -3
  107. package/Libraries/Network/fetch.js +4 -3
  108. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +63 -61
  109. package/Libraries/Pressability/Pressability.js +23 -23
  110. package/Libraries/Pressability/Pressability.win32.js +23 -23
  111. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +119 -16
  112. package/Libraries/ReactNative/AppContainer-dev.js +2 -1
  113. package/Libraries/ReactNative/AppRegistry.js +3 -3
  114. package/Libraries/ReactNative/PaperUIManager.js +3 -2
  115. package/Libraries/ReactNative/PaperUIManager.win32.js +3 -2
  116. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +2 -1
  117. package/Libraries/ReactNative/RootTag.js +1 -1
  118. package/Libraries/ReactNative/getNativeComponentAttributes.js +4 -4
  119. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -4
  120. package/Libraries/Renderer/shims/ReactNativeTypes.js +4 -5
  121. package/Libraries/Settings/Settings.js +2 -2
  122. package/Libraries/Settings/Settings.win32.js +2 -2
  123. package/Libraries/Share/Share.js +10 -3
  124. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  125. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  126. package/Libraries/StyleSheet/StyleSheet.win32.js +2 -2
  127. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +1 -1
  128. package/Libraries/StyleSheet/flattenStyle.js +1 -1
  129. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  130. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  131. package/Libraries/StyleSheet/processColor.js +2 -2
  132. package/Libraries/StyleSheet/processFilter.js +4 -0
  133. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  134. package/Libraries/StyleSheet/processTransform.js +1 -1
  135. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  136. package/Libraries/Text/Text.js +15 -15
  137. package/Libraries/Text/Text.win32.js +15 -15
  138. package/Libraries/Text/TextAncestor.js +1 -1
  139. package/Libraries/Text/TextNativeComponent.js +2 -2
  140. package/Libraries/Text/TextNativeComponent.win32.js +2 -2
  141. package/Libraries/Text/TextProps.js +11 -11
  142. package/Libraries/Text/TextProps.win32.js +11 -11
  143. package/Libraries/Types/CodegenTypes.js +3 -3
  144. package/Libraries/Types/CoreEventTypes.js +103 -72
  145. package/Libraries/Types/CoreEventTypes.win32.js +115 -79
  146. package/Libraries/UTFSequence.js +2 -1
  147. package/Libraries/Utilities/BackHandler.android.js +1 -1
  148. package/Libraries/Utilities/BackHandler.ios.js +5 -5
  149. package/Libraries/Utilities/BackHandler.win32.js +1 -1
  150. package/Libraries/Utilities/DevLoadingView.js +1 -1
  151. package/Libraries/Utilities/DevSettings.js +1 -1
  152. package/Libraries/Utilities/DeviceInfo.js +1 -1
  153. package/Libraries/Utilities/DeviceInfo.win32.js +1 -1
  154. package/Libraries/Utilities/FeatureDetection.js +2 -4
  155. package/Libraries/Utilities/FocusManager.win32.js +3 -3
  156. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -1
  157. package/Libraries/Utilities/HMRClient.js +5 -33
  158. package/Libraries/Utilities/HMRClientProdShim.js +1 -2
  159. package/Libraries/Utilities/Platform.android.js +2 -2
  160. package/Libraries/Utilities/Platform.ios.js +2 -2
  161. package/Libraries/Utilities/Platform.win32.js +2 -2
  162. package/Libraries/Utilities/{Platform.flow.win32.js → PlatformTypes.js} +1 -0
  163. package/Libraries/Utilities/PolyfillFunctions.js +3 -5
  164. package/Libraries/Utilities/RCTLog.js +1 -1
  165. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  166. package/Libraries/Utilities/SceneTracker.js +1 -1
  167. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +2 -2
  168. package/Libraries/Utilities/binaryToBase64.js +1 -1
  169. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
  170. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  171. package/Libraries/Utilities/differ/deepDiffer.js +3 -3
  172. package/Libraries/Utilities/differ/insetsDiffer.js +3 -3
  173. package/Libraries/Utilities/differ/matricesDiffer.js +3 -6
  174. package/Libraries/Utilities/differ/pointsDiffer.js +3 -3
  175. package/Libraries/Utilities/differ/sizesDiffer.js +3 -3
  176. package/Libraries/Utilities/dismissKeyboard.js +1 -1
  177. package/Libraries/Utilities/infoLog.js +1 -1
  178. package/Libraries/Utilities/logError.js +1 -1
  179. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  180. package/Libraries/Utilities/warnOnce.js +1 -1
  181. package/Libraries/Vibration/Vibration.js +3 -3
  182. package/Libraries/vendor/emitter/EventEmitter.js +21 -9
  183. package/index.js +113 -199
  184. package/index.win32.js +21 -13
  185. package/jest/setup.js +9 -2
  186. package/overrides.json +35 -34
  187. package/package.json +15 -16
  188. package/src/private/devmenu/DevMenu.js +1 -1
  189. package/src/private/featureflags/ReactNativeFeatureFlags.js +22 -23
  190. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +4 -7
  191. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -4
  192. package/src/private/inspector/BoxInspector.js +1 -1
  193. package/src/private/inspector/ElementBox.js +3 -2
  194. package/src/private/inspector/ElementProperties.js +5 -3
  195. package/src/private/inspector/Inspector.js +2 -2
  196. package/src/private/inspector/InspectorOverlay.js +4 -4
  197. package/src/private/inspector/InspectorPanel.js +1 -1
  198. package/src/private/inspector/NetworkOverlay.js +4 -4
  199. package/src/private/inspector/PerformanceOverlay.js +3 -2
  200. package/src/private/inspector/ReactDevToolsOverlay.js +3 -3
  201. package/src/private/inspector/StyleInspector.js +1 -1
  202. package/src/private/inspector/XHRInterceptor.js +5 -2
  203. package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -1
  204. package/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.js +1 -1
  205. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +5 -4
  206. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +92 -19
  207. package/src/private/webapis/dom/events/CustomEvent.js +5 -7
  208. package/src/private/webapis/dom/events/Event.js +5 -5
  209. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -0
  210. package/src/private/webapis/html/events/MessageEvent.js +12 -19
  211. package/src/private/webapis/websockets/events/CloseEvent.js +9 -11
  212. package/src/private/webapis/xhr/events/ProgressEvent.js +9 -11
  213. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +14 -14
  214. package/Libraries/Alert/Alert.flow.js +0 -62
  215. package/Libraries/Alert/RCTAlertManager.flow.js +0 -20
  216. package/Libraries/Utilities/Platform.flow.js +0 -91
  217. package/flow/react.js +0 -15
@@ -10,6 +10,8 @@
10
10
 
11
11
  import type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';
12
12
 
13
+ import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
14
+ import NativeReactNativeFeatureFlags from '../../src/private/featureflags/specs/NativeReactNativeFeatureFlags';
13
15
  import ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';
14
16
  import {
15
17
  ConditionallyIgnoredEventHandlers,
@@ -200,13 +202,13 @@ const validAttributesForNonEventProps = {
200
202
  backfaceVisibility: true,
201
203
  opacity: true,
202
204
  shadowColor: {process: require('../StyleSheet/processColor').default},
203
- shadowOffset: {diff: require('../Utilities/differ/sizesDiffer')},
205
+ shadowOffset: {diff: require('../Utilities/differ/sizesDiffer').default},
204
206
  shadowOpacity: true,
205
207
  shadowRadius: true,
206
208
  needsOffscreenAlphaCompositing: true,
207
209
  overflow: true,
208
210
  shouldRasterizeIOS: true,
209
- transform: {diff: require('../Utilities/differ/matricesDiffer')},
211
+ transform: {diff: require('../Utilities/differ/matricesDiffer').default},
210
212
  transformOrigin: true,
211
213
  accessibilityRole: true,
212
214
  accessibilityState: true,
@@ -219,15 +221,23 @@ const validAttributesForNonEventProps = {
219
221
  borderCurve: true,
220
222
  borderWidth: true,
221
223
  borderStyle: true,
222
- hitSlop: {diff: require('../Utilities/differ/insetsDiffer')},
224
+ hitSlop: {diff: require('../Utilities/differ/insetsDiffer').default},
223
225
  collapsable: true,
224
226
  collapsableChildren: true,
225
- experimental_filter: {
226
- process: require('../StyleSheet/processFilter').default,
227
- },
228
- boxShadow: {
229
- process: require('../StyleSheet/processBoxShadow').default,
230
- },
227
+ experimental_filter:
228
+ NativeReactNativeFeatureFlags != null &&
229
+ ReactNativeFeatureFlags.enableNativeCSSParsing()
230
+ ? true
231
+ : {
232
+ process: require('../StyleSheet/processFilter').default,
233
+ },
234
+ boxShadow:
235
+ NativeReactNativeFeatureFlags != null &&
236
+ ReactNativeFeatureFlags.enableNativeCSSParsing()
237
+ ? true
238
+ : {
239
+ process: require('../StyleSheet/processBoxShadow').default,
240
+ },
231
241
  mixBlendMode: true,
232
242
  isolation: true,
233
243
 
@@ -8,6 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
+ import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
11
12
  import {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';
12
13
 
13
14
  export type Difference =
@@ -128,7 +129,10 @@ function accumulateDifferences(
128
129
  }
129
130
  }
130
131
 
131
- if (nativeValue !== staticValue) {
132
+ if (
133
+ nativeValue !== staticValue &&
134
+ !ReactNativeFeatureFlags.enableNativeCSSParsing()
135
+ ) {
132
136
  differences.push({
133
137
  path: [...path, nativeKey],
134
138
  type: 'unequal',
@@ -105,4 +105,4 @@ class FormData {
105
105
  }
106
106
  }
107
107
 
108
- module.exports = FormData;
108
+ export default FormData;
@@ -16,9 +16,8 @@ export type * from './XMLHttpRequest_old';
16
16
  // be read before apps have a chance to set overrides.
17
17
  const useBuiltInEventTarget = global.RN$useBuiltInEventTarget?.();
18
18
 
19
- module.exports = (
20
- useBuiltInEventTarget
21
- ? // $FlowExpectedError[incompatible-cast]
22
- require('./XMLHttpRequest_new')
23
- : require('./XMLHttpRequest_old')
24
- ) as XMLHttpRequest;
19
+ export default (useBuiltInEventTarget
20
+ ? // $FlowExpectedError[incompatible-cast]
21
+ require('./XMLHttpRequest_new').default
22
+ : // $FlowExpectedError[incompatible-cast]
23
+ require('./XMLHttpRequest_old').default) as XMLHttpRequest;
@@ -27,7 +27,8 @@ import ProgressEvent from '../../src/private/webapis/xhr/events/ProgressEvent';
27
27
  import {type EventSubscription} from '../vendor/emitter/EventEmitter';
28
28
 
29
29
  const BlobManager = require('../Blob/BlobManager').default;
30
- const GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');
30
+ const GlobalPerformanceLogger =
31
+ require('../Utilities/GlobalPerformanceLogger').default;
31
32
  const RCTNetworking = require('./RCTNetworking').default;
32
33
  const base64 = require('base64-js');
33
34
  const invariant = require('invariant');
@@ -787,4 +788,4 @@ class XMLHttpRequest extends EventTarget {
787
788
  }
788
789
  }
789
790
 
790
- module.exports = XMLHttpRequest;
791
+ export default XMLHttpRequest;
@@ -16,7 +16,8 @@ import {type EventSubscription} from '../vendor/emitter/EventEmitter';
16
16
  import EventTarget from 'event-target-shim';
17
17
 
18
18
  const BlobManager = require('../Blob/BlobManager').default;
19
- const GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');
19
+ const GlobalPerformanceLogger =
20
+ require('../Utilities/GlobalPerformanceLogger').default;
20
21
  const RCTNetworking = require('./RCTNetworking').default;
21
22
  const base64 = require('base64-js');
22
23
  const invariant = require('invariant');
@@ -694,4 +695,4 @@ class XMLHttpRequest extends (EventTarget(...XHR_EVENTS): typeof EventTarget) {
694
695
  }
695
696
  }
696
697
 
697
- module.exports = XMLHttpRequest;
698
+ export default XMLHttpRequest;
@@ -11,10 +11,11 @@
11
11
  'use strict';
12
12
 
13
13
  import typeof BlobT from '../Blob/Blob';
14
+ import typeof FormDataT from './FormData';
14
15
 
15
16
  const Blob: BlobT = require('../Blob/Blob').default;
16
- const binaryToBase64 = require('../Utilities/binaryToBase64');
17
- const FormData = require('./FormData');
17
+ const binaryToBase64 = require('../Utilities/binaryToBase64').default;
18
+ const FormData: FormDataT = require('./FormData').default;
18
19
 
19
20
  export type RequestBody =
20
21
  | string
@@ -42,4 +43,4 @@ function convertRequestBody(body: RequestBody): Object {
42
43
  return body;
43
44
  }
44
45
 
45
- module.exports = convertRequestBody;
46
+ export default convertRequestBody;
@@ -8,12 +8,13 @@
8
8
  * @format
9
9
  */
10
10
 
11
- /* globals Headers, Request, Response */
12
-
13
11
  'use strict';
14
12
 
15
13
  // side-effectful require() to put fetch,
16
14
  // Headers, Request, Response in global scope
17
15
  require('whatwg-fetch');
18
16
 
19
- module.exports = {fetch, Headers, Request, Response};
17
+ export const fetch = global.fetch;
18
+ export const Headers = global.Headers;
19
+ export const Request = global.Request;
20
+ export const Response = global.Response;
@@ -8,16 +8,11 @@
8
8
  * @flow strict
9
9
  */
10
10
 
11
- import type {
12
- PermissionStatus,
13
- PermissionType,
14
- } from './NativePermissionsAndroid';
15
-
16
11
  import NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';
17
12
  import NativePermissionsAndroid from './NativePermissionsAndroid';
18
13
  import invariant from 'invariant';
19
14
 
20
- const Platform = require('../Utilities/Platform');
15
+ const Platform = require('../Utilities/Platform').default;
21
16
 
22
17
  export type Rationale = {
23
18
  title: string,
@@ -34,6 +29,55 @@ const PERMISSION_REQUEST_RESULT = Object.freeze({
34
29
  NEVER_ASK_AGAIN: 'never_ask_again',
35
30
  });
36
31
 
32
+ type PermissionsType = $ReadOnly<{
33
+ READ_CALENDAR: 'android.permission.READ_CALENDAR',
34
+ WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR',
35
+ CAMERA: 'android.permission.CAMERA',
36
+ READ_CONTACTS: 'android.permission.READ_CONTACTS',
37
+ WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS',
38
+ GET_ACCOUNTS: 'android.permission.GET_ACCOUNTS',
39
+ ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION',
40
+ ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION',
41
+ ACCESS_BACKGROUND_LOCATION: 'android.permission.ACCESS_BACKGROUND_LOCATION',
42
+ RECORD_AUDIO: 'android.permission.RECORD_AUDIO',
43
+ READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE',
44
+ CALL_PHONE: 'android.permission.CALL_PHONE',
45
+ READ_CALL_LOG: 'android.permission.READ_CALL_LOG',
46
+ WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG',
47
+ ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL',
48
+ READ_VOICEMAIL: 'com.android.voicemail.permission.READ_VOICEMAIL',
49
+ WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',
50
+ USE_SIP: 'android.permission.USE_SIP',
51
+ PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS',
52
+ BODY_SENSORS: 'android.permission.BODY_SENSORS',
53
+ BODY_SENSORS_BACKGROUND: 'android.permission.BODY_SENSORS_BACKGROUND',
54
+ SEND_SMS: 'android.permission.SEND_SMS',
55
+ RECEIVE_SMS: 'android.permission.RECEIVE_SMS',
56
+ READ_SMS: 'android.permission.READ_SMS',
57
+ RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH',
58
+ RECEIVE_MMS: 'android.permission.RECEIVE_MMS',
59
+ READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',
60
+ READ_MEDIA_IMAGES: 'android.permission.READ_MEDIA_IMAGES',
61
+ READ_MEDIA_VIDEO: 'android.permission.READ_MEDIA_VIDEO',
62
+ READ_MEDIA_AUDIO: 'android.permission.READ_MEDIA_AUDIO',
63
+ READ_MEDIA_VISUAL_USER_SELECTED: 'android.permission.READ_MEDIA_VISUAL_USER_SELECTED',
64
+ WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE',
65
+ BLUETOOTH_CONNECT: 'android.permission.BLUETOOTH_CONNECT',
66
+ BLUETOOTH_SCAN: 'android.permission.BLUETOOTH_SCAN',
67
+ BLUETOOTH_ADVERTISE: 'android.permission.BLUETOOTH_ADVERTISE',
68
+ ACCESS_MEDIA_LOCATION: 'android.permission.ACCESS_MEDIA_LOCATION',
69
+ ACCEPT_HANDOVER: 'android.permission.ACCEPT_HANDOVER',
70
+ ACTIVITY_RECOGNITION: 'android.permission.ACTIVITY_RECOGNITION',
71
+ ANSWER_PHONE_CALLS: 'android.permission.ANSWER_PHONE_CALLS',
72
+ READ_PHONE_NUMBERS: 'android.permission.READ_PHONE_NUMBERS',
73
+ UWB_RANGING: 'android.permission.UWB_RANGING',
74
+ POST_NOTIFICATIONS: 'android.permission.POST_NOTIFICATIONS',
75
+ NEARBY_WIFI_DEVICES: 'android.permission.NEARBY_WIFI_DEVICES',
76
+ }>;
77
+
78
+ export type PermissionStatus = 'granted' | 'denied' | 'never_ask_again';
79
+ export type Permission = $Values<PermissionsType>;
80
+
37
81
  const PERMISSIONS = Object.freeze({
38
82
  READ_CALENDAR: 'android.permission.READ_CALENDAR',
39
83
  WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR',
@@ -79,60 +123,15 @@ const PERMISSIONS = Object.freeze({
79
123
  UWB_RANGING: 'android.permission.UWB_RANGING',
80
124
  POST_NOTIFICATIONS: 'android.permission.POST_NOTIFICATIONS',
81
125
  NEARBY_WIFI_DEVICES: 'android.permission.NEARBY_WIFI_DEVICES',
82
- });
126
+ }) as PermissionsType;
83
127
 
84
128
  /**
85
129
  * `PermissionsAndroid` provides access to Android M's new permissions model.
86
130
  *
87
131
  * See https://reactnative.dev/docs/permissionsandroid
88
132
  */
89
-
90
133
  class PermissionsAndroid {
91
- PERMISSIONS: $ReadOnly<{
92
- ACCEPT_HANDOVER: string,
93
- ACCESS_BACKGROUND_LOCATION: string,
94
- ACCESS_COARSE_LOCATION: string,
95
- ACCESS_FINE_LOCATION: string,
96
- ACCESS_MEDIA_LOCATION: string,
97
- ACTIVITY_RECOGNITION: string,
98
- ADD_VOICEMAIL: string,
99
- READ_VOICEMAIL: string,
100
- WRITE_VOICEMAIL: string,
101
- ANSWER_PHONE_CALLS: string,
102
- BLUETOOTH_ADVERTISE: string,
103
- BLUETOOTH_CONNECT: string,
104
- BLUETOOTH_SCAN: string,
105
- BODY_SENSORS: string,
106
- BODY_SENSORS_BACKGROUND: string,
107
- CALL_PHONE: string,
108
- CAMERA: string,
109
- GET_ACCOUNTS: string,
110
- NEARBY_WIFI_DEVICES: string,
111
- POST_NOTIFICATIONS: string,
112
- PROCESS_OUTGOING_CALLS: string,
113
- READ_CALENDAR: string,
114
- READ_CALL_LOG: string,
115
- READ_CONTACTS: string,
116
- READ_EXTERNAL_STORAGE: string,
117
- READ_MEDIA_IMAGES: string,
118
- READ_MEDIA_VIDEO: string,
119
- READ_MEDIA_AUDIO: string,
120
- READ_MEDIA_VISUAL_USER_SELECTED: string,
121
- READ_PHONE_NUMBERS: string,
122
- READ_PHONE_STATE: string,
123
- READ_SMS: string,
124
- RECEIVE_MMS: string,
125
- RECEIVE_SMS: string,
126
- RECEIVE_WAP_PUSH: string,
127
- RECORD_AUDIO: string,
128
- SEND_SMS: string,
129
- USE_SIP: string,
130
- UWB_RANGING: string,
131
- WRITE_CALENDAR: string,
132
- WRITE_CALL_LOG: string,
133
- WRITE_CONTACTS: string,
134
- WRITE_EXTERNAL_STORAGE: string,
135
- }> = PERMISSIONS;
134
+ PERMISSIONS: PermissionsType = PERMISSIONS;
136
135
  RESULTS: $ReadOnly<{
137
136
  DENIED: 'denied',
138
137
  GRANTED: 'granted',
@@ -147,7 +146,7 @@ class PermissionsAndroid {
147
146
  *
148
147
  * @deprecated
149
148
  */
150
- checkPermission(permission: PermissionType): Promise<boolean> {
149
+ checkPermission(permission: Permission): Promise<boolean> {
151
150
  console.warn(
152
151
  '"PermissionsAndroid.checkPermission" is deprecated. Use "PermissionsAndroid.check" instead',
153
152
  );
@@ -172,7 +171,7 @@ class PermissionsAndroid {
172
171
  *
173
172
  * See https://reactnative.dev/docs/permissionsandroid#check
174
173
  */
175
- check(permission: PermissionType): Promise<boolean> {
174
+ check(permission: Permission): Promise<boolean> {
176
175
  if (Platform.OS !== 'android') {
177
176
  console.warn(
178
177
  '"PermissionsAndroid" module works only for Android platform.',
@@ -203,7 +202,7 @@ class PermissionsAndroid {
203
202
  * @deprecated
204
203
  */
205
204
  async requestPermission(
206
- permission: PermissionType,
205
+ permission: Permission,
207
206
  rationale?: Rationale,
208
207
  ): Promise<boolean> {
209
208
  console.warn(
@@ -227,7 +226,7 @@ class PermissionsAndroid {
227
226
  * See https://reactnative.dev/docs/permissionsandroid#request
228
227
  */
229
228
  async request(
230
- permission: PermissionType,
229
+ permission: Permission,
231
230
  rationale?: Rationale,
232
231
  ): Promise<PermissionStatus> {
233
232
  if (Platform.OS !== 'android') {
@@ -261,11 +260,13 @@ class PermissionsAndroid {
261
260
  options,
262
261
  () => reject(new Error('Error showing rationale')),
263
262
  () =>
263
+ // $FlowFixMe[incompatible-call]
264
264
  resolve(NativePermissionsAndroid.requestPermission(permission)),
265
265
  );
266
266
  });
267
267
  }
268
268
  }
269
+ // $FlowFixMe[incompatible-return]
269
270
  return NativePermissionsAndroid.requestPermission(permission);
270
271
  }
271
272
 
@@ -277,8 +278,8 @@ class PermissionsAndroid {
277
278
  * See https://reactnative.dev/docs/permissionsandroid#requestmultiple
278
279
  */
279
280
  requestMultiple(
280
- permissions: Array<PermissionType>,
281
- ): Promise<{[permission: PermissionType]: PermissionStatus, ...}> {
281
+ permissions: Array<Permission>,
282
+ ): Promise<{[permission: Permission]: PermissionStatus, ...}> {
282
283
  if (Platform.OS !== 'android') {
283
284
  console.warn(
284
285
  '"PermissionsAndroid" module works only for Android platform.',
@@ -290,10 +291,11 @@ class PermissionsAndroid {
290
291
  NativePermissionsAndroid,
291
292
  'PermissionsAndroid is not installed correctly.',
292
293
  );
294
+ // $FlowFixMe[incompatible-return]
295
+ // $FlowFixMe[incompatible-call]
293
296
  return NativePermissionsAndroid.requestMultiplePermissions(permissions);
294
297
  }
295
298
  }
296
299
 
297
300
  const PermissionsAndroidInstance: PermissionsAndroid = new PermissionsAndroid();
298
-
299
- module.exports = PermissionsAndroidInstance;
301
+ export default PermissionsAndroidInstance;
@@ -13,7 +13,7 @@ import type {
13
13
  BlurEvent,
14
14
  FocusEvent,
15
15
  MouseEvent,
16
- PressEvent,
16
+ GestureResponderEvent,
17
17
  } from '../Types/CoreEventTypes';
18
18
 
19
19
  import SoundManager from '../Components/Sound/SoundManager';
@@ -108,27 +108,27 @@ export type PressabilityConfig = $ReadOnly<{
108
108
  /**
109
109
  * Called when a long press gesture has been triggered.
110
110
  */
111
- onLongPress?: ?(event: PressEvent) => mixed,
111
+ onLongPress?: ?(event: GestureResponderEvent) => mixed,
112
112
 
113
113
  /**
114
114
  * Called when a press gesture has been triggered.
115
115
  */
116
- onPress?: ?(event: PressEvent) => mixed,
116
+ onPress?: ?(event: GestureResponderEvent) => mixed,
117
117
 
118
118
  /**
119
119
  * Called when the press is activated to provide visual feedback.
120
120
  */
121
- onPressIn?: ?(event: PressEvent) => mixed,
121
+ onPressIn?: ?(event: GestureResponderEvent) => mixed,
122
122
 
123
123
  /**
124
124
  * Called when the press location moves. (This should rarely be used.)
125
125
  */
126
- onPressMove?: ?(event: PressEvent) => mixed,
126
+ onPressMove?: ?(event: GestureResponderEvent) => mixed,
127
127
 
128
128
  /**
129
129
  * Called when the press is deactivated to undo visual feedback.
130
130
  */
131
- onPressOut?: ?(event: PressEvent) => mixed,
131
+ onPressOut?: ?(event: GestureResponderEvent) => mixed,
132
132
 
133
133
  /**
134
134
  * Whether to prevent any other native components from becoming responder
@@ -139,16 +139,16 @@ export type PressabilityConfig = $ReadOnly<{
139
139
 
140
140
  export type EventHandlers = $ReadOnly<{
141
141
  onBlur: (event: BlurEvent) => void,
142
- onClick: (event: PressEvent) => void,
142
+ onClick: (event: GestureResponderEvent) => void,
143
143
  onFocus: (event: FocusEvent) => void,
144
144
  onMouseEnter?: (event: MouseEvent) => void,
145
145
  onMouseLeave?: (event: MouseEvent) => void,
146
146
  onPointerEnter?: (event: PointerEvent) => void,
147
147
  onPointerLeave?: (event: PointerEvent) => void,
148
- onResponderGrant: (event: PressEvent) => void | boolean,
149
- onResponderMove: (event: PressEvent) => void,
150
- onResponderRelease: (event: PressEvent) => void,
151
- onResponderTerminate: (event: PressEvent) => void,
148
+ onResponderGrant: (event: GestureResponderEvent) => void | boolean,
149
+ onResponderMove: (event: GestureResponderEvent) => void,
150
+ onResponderRelease: (event: GestureResponderEvent) => void,
151
+ onResponderTerminate: (event: GestureResponderEvent) => void,
152
152
  onResponderTerminationRequest: () => boolean,
153
153
  onStartShouldSetResponder: () => boolean,
154
154
  }>;
@@ -450,7 +450,7 @@ export default class Pressability {
450
450
  return !disabled ?? true;
451
451
  },
452
452
 
453
- onResponderGrant: (event: PressEvent): void | boolean => {
453
+ onResponderGrant: (event: GestureResponderEvent): void | boolean => {
454
454
  event.persist();
455
455
 
456
456
  this._cancelPressOutDelayTimeout();
@@ -480,7 +480,7 @@ export default class Pressability {
480
480
  return this._config.blockNativeResponder === true;
481
481
  },
482
482
 
483
- onResponderMove: (event: PressEvent): void => {
483
+ onResponderMove: (event: GestureResponderEvent): void => {
484
484
  const {onPressMove} = this._config;
485
485
  if (onPressMove != null) {
486
486
  onPressMove(event);
@@ -515,11 +515,11 @@ export default class Pressability {
515
515
  }
516
516
  },
517
517
 
518
- onResponderRelease: (event: PressEvent): void => {
518
+ onResponderRelease: (event: GestureResponderEvent): void => {
519
519
  this._receiveSignal('RESPONDER_RELEASE', event);
520
520
  },
521
521
 
522
- onResponderTerminate: (event: PressEvent): void => {
522
+ onResponderTerminate: (event: GestureResponderEvent): void => {
523
523
  this._receiveSignal('RESPONDER_TERMINATED', event);
524
524
  },
525
525
 
@@ -528,7 +528,7 @@ export default class Pressability {
528
528
  return cancelable ?? true;
529
529
  },
530
530
 
531
- onClick: (event: PressEvent): void => {
531
+ onClick: (event: GestureResponderEvent): void => {
532
532
  // If event has `pointerType`, it was emitted from a PointerEvent and
533
533
  // we should ignore it to avoid triggering `onPress` twice.
534
534
  if (event?.nativeEvent?.hasOwnProperty?.('pointerType')) {
@@ -664,7 +664,7 @@ export default class Pressability {
664
664
  * Receives a state machine signal, performs side effects of the transition
665
665
  * and stores the new state. Validates the transition as well.
666
666
  */
667
- _receiveSignal(signal: TouchSignal, event: PressEvent): void {
667
+ _receiveSignal(signal: TouchSignal, event: GestureResponderEvent): void {
668
668
  // Especially on iOS, not all events have timestamps associated.
669
669
  // For telemetry purposes, this doesn't matter too much, as long as *some* do.
670
670
  // Since the native timestamp is integral for logging telemetry, just skip
@@ -706,7 +706,7 @@ export default class Pressability {
706
706
  prevState: TouchState,
707
707
  nextState: TouchState,
708
708
  signal: TouchSignal,
709
- event: PressEvent,
709
+ event: GestureResponderEvent,
710
710
  ): void {
711
711
  if (isTerminalSignal(signal)) {
712
712
  this._touchActivatePosition = null;
@@ -762,7 +762,7 @@ export default class Pressability {
762
762
  this._cancelPressDelayTimeout();
763
763
  }
764
764
 
765
- _activate(event: PressEvent): void {
765
+ _activate(event: GestureResponderEvent): void {
766
766
  const {onPressIn} = this._config;
767
767
  const {pageX, pageY} = getTouchFromPressEvent(event);
768
768
  this._touchActivatePosition = {pageX, pageY};
@@ -772,7 +772,7 @@ export default class Pressability {
772
772
  }
773
773
  }
774
774
 
775
- _deactivate(event: PressEvent): void {
775
+ _deactivate(event: GestureResponderEvent): void {
776
776
  const {onPressOut} = this._config;
777
777
  if (onPressOut != null) {
778
778
  const minPressDuration = normalizeDelay(
@@ -829,7 +829,7 @@ export default class Pressability {
829
829
  };
830
830
 
831
831
  _isTouchWithinResponderRegion(
832
- touch: $PropertyType<PressEvent, 'nativeEvent'>,
832
+ touch: $PropertyType<GestureResponderEvent, 'nativeEvent'>,
833
833
  responderRegion: $ReadOnly<{
834
834
  bottom: number,
835
835
  left: number,
@@ -874,7 +874,7 @@ export default class Pressability {
874
874
  );
875
875
  }
876
876
 
877
- _handleLongPress(event: PressEvent): void {
877
+ _handleLongPress(event: GestureResponderEvent): void {
878
878
  if (
879
879
  this._touchState === 'RESPONDER_ACTIVE_PRESS_IN' ||
880
880
  this._touchState === 'RESPONDER_ACTIVE_LONG_PRESS_IN'
@@ -927,7 +927,7 @@ function normalizeDelay(
927
927
  return Math.max(min, delay ?? fallback);
928
928
  }
929
929
 
930
- const getTouchFromPressEvent = (event: PressEvent) => {
930
+ const getTouchFromPressEvent = (event: GestureResponderEvent) => {
931
931
  const {changedTouches, touches} = event.nativeEvent;
932
932
 
933
933
  if (touches != null && touches.length > 0) {