@office-iss/react-native-win32 0.69.0-preview.4 → 0.70.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.
- package/.eslintrc.js +0 -1
- package/.flowconfig +5 -1
- package/CHANGELOG.json +228 -24
- package/CHANGELOG.md +92 -14
- package/IntegrationTests/AsyncStorageTest.js +20 -4
- package/IntegrationTests/BUCK +2 -2
- package/IntegrationTests/LayoutEventsTest.js +4 -1
- package/IntegrationTests/{launchWebSocketServer.command → launchWebSocketServer.sh} +3 -9
- package/Libraries/Alert/Alert.js +18 -4
- package/Libraries/Alert/Alert.win32.js +2 -0
- package/Libraries/Alert/NativeAlertManager.js +1 -0
- package/Libraries/Animated/Animated.js +2 -2
- package/Libraries/Animated/AnimatedEvent.js +7 -4
- package/Libraries/Animated/AnimatedImplementation.js +17 -3
- package/Libraries/Animated/AnimatedMock.js +7 -2
- package/Libraries/Animated/NativeAnimatedHelper.js +220 -95
- package/Libraries/Animated/NativeAnimatedModule.js +3 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +3 -0
- package/Libraries/Animated/animations/SpringAnimation.js +3 -3
- package/Libraries/Animated/animations/TimingAnimation.js +3 -3
- package/Libraries/Animated/createAnimatedComponent.js +8 -1
- package/Libraries/Animated/nodes/AnimatedAddition.js +3 -1
- package/Libraries/Animated/nodes/AnimatedColor.js +50 -29
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +3 -1
- package/Libraries/Animated/nodes/AnimatedDivision.js +3 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +22 -21
- package/Libraries/Animated/nodes/AnimatedModulo.js +3 -1
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +3 -2
- package/Libraries/Animated/nodes/AnimatedProps.js +20 -12
- package/Libraries/Animated/nodes/AnimatedStyle.js +19 -16
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +3 -1
- package/Libraries/Animated/nodes/AnimatedTransform.js +5 -5
- package/Libraries/Animated/nodes/AnimatedValue.js +14 -5
- package/Libraries/Animated/nodes/AnimatedValueXY.js +28 -1
- package/Libraries/Animated/useAnimatedProps.js +1 -0
- package/Libraries/AppState/AppState.js +0 -32
- package/Libraries/BatchedBridge/MessageQueue.js +21 -15
- package/Libraries/BatchedBridge/NativeModules.js +3 -4
- package/Libraries/Blob/FileReader.js +0 -6
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +0 -20
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +0 -20
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
- package/Libraries/Components/Keyboard/Keyboard.js +0 -11
- package/Libraries/Components/Pressable/Pressable.js +2 -0
- package/Libraries/Components/Pressable/Pressable.win32.js +2 -0
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -3
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -30
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +4 -32
- package/Libraries/Components/ScrollView/ScrollView.js +13 -11
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -3
- package/Libraries/Components/StatusBar/StatusBar.js +10 -7
- package/Libraries/Components/TextInput/InputAccessoryView.js +14 -13
- package/Libraries/Components/TextInput/TextInput.js +12 -2
- package/Libraries/Components/Touchable/PooledClass.js +16 -4
- package/Libraries/Components/Touchable/Touchable.js +50 -1
- package/Libraries/Components/Touchable/Touchable.win32.js +972 -0
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -2
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +0 -7
- package/Libraries/Components/View/ViewPropTypes.js +3 -8
- package/Libraries/Components/View/ViewPropTypes.win32.js +3 -8
- package/Libraries/Core/ExceptionsManager.js +2 -0
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +2 -2
- package/Libraries/Core/polyfillPromise.js +0 -32
- package/Libraries/Core/setUpBatchedBridge.js +5 -1
- package/Libraries/Core/setUpPerformance.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +0 -13
- package/Libraries/Image/AssetSourceResolver.js +2 -2
- package/Libraries/Image/Image.android.js +5 -3
- package/Libraries/Image/Image.ios.js +6 -3
- package/Libraries/Image/Image.win32.js +6 -3
- package/Libraries/Image/ImageSource.js +7 -5
- package/Libraries/Inspector/ElementBox.js +2 -2
- package/Libraries/Inspector/NetworkOverlay.js +13 -8
- package/Libraries/Interaction/PanResponder.js +16 -14
- package/Libraries/Linking/Linking.js +0 -11
- package/Libraries/Lists/FlatList.js +3 -2
- package/Libraries/Lists/SectionList.js +2 -0
- package/Libraries/Lists/ViewabilityHelper.js +7 -3
- package/Libraries/Lists/VirtualizeUtils.js +33 -20
- package/Libraries/Lists/VirtualizedList.js +93 -47
- package/Libraries/Lists/VirtualizedListContext.js +1 -0
- package/Libraries/Lists/VirtualizedSectionList.js +14 -9
- package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +19 -18
- package/Libraries/Lists/__tests__/VirtualizedList-test.js +10 -6
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +3 -1
- package/Libraries/LogBox/UI/AnsiHighlight.js +2 -0
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +3 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +0 -3
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +8 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +9 -18
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +26 -12
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +26 -12
- package/Libraries/Network/XMLHttpRequest.js +9 -11
- package/Libraries/Performance/PureComponentDebug.js +1 -0
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +9 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +16 -0
- package/Libraries/Pressability/Pressability.js +26 -16
- package/Libraries/Pressability/Pressability.win32.js +26 -16
- package/Libraries/Promise.js +0 -1
- package/Libraries/ReactNative/AppRegistry.js +16 -13
- package/Libraries/ReactNative/BridgelessUIManager.js +2 -0
- package/Libraries/ReactNative/PaperUIManager.js +9 -9
- package/Libraries/ReactNative/PaperUIManager.win32.js +7 -8
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +12 -0
- package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +68 -0
- package/Libraries/ReactNative/getNativeComponentAttributes.js +6 -7
- package/Libraries/ReactNative/renderApplication.js +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +4443 -3615
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +1496 -1170
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +1694 -1356
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +4439 -3588
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1583 -1249
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1719 -1372
- package/Libraries/Storage/AsyncStorage.js +7 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +8 -0
- package/Libraries/StyleSheet/flattenStyle.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +2 -0
- package/Libraries/StyleSheet/splitLayoutProps.js +2 -0
- package/Libraries/Text/Text.js +15 -7
- package/Libraries/Types/CoreEventTypes.js +137 -11
- package/Libraries/Types/CoreEventTypes.win32.js +147 -22
- package/Libraries/Utilities/Dimensions.js +0 -13
- package/Libraries/Utilities/Dimensions.win32.js +0 -9
- package/Libraries/Utilities/HMRClient.js +3 -3
- package/Libraries/Utilities/Platform.ios.js +0 -7
- package/Libraries/Utilities/ReactNativeTestTools.js +3 -1
- package/Libraries/Utilities/codegenNativeCommands.js +11 -2
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -0
- package/Libraries/Utilities/stringifySafe.js +3 -1
- package/Libraries/Utilities/truncate.js +1 -1
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +2 -2
- package/Libraries/Vibration/Vibration.js +1 -1
- package/Libraries/WebSocket/WebSocket.js +1 -0
- package/Libraries/vendor/emitter/EventEmitter.js +105 -12
- package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +73 -117
- package/flow/JSITimerInternalType.js +30 -0
- package/jest/assetFileTransformer.js +3 -2
- package/jest/setup.js +4 -0
- package/jest.config.js +0 -1
- package/overrides.json +23 -16
- package/package.json +21 -22
- package/rntypes/index.d.ts +0 -1
- package/src/rntypes/index.d.ts +0 -1
- package/Libraries/vendor/emitter/EventSubscription.js +0 -19
- package/Libraries/vendor/emitter/_EmitterSubscription.js +0 -62
- package/Libraries/vendor/emitter/_EventEmitter.js +0 -184
- package/Libraries/vendor/emitter/_EventSubscription.js +0 -45
- package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +0 -108
- package/jest/preprocessor.js +0 -40
- package/jest/preprocessor_DO_NOT_USE.js +0 -122
- package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizeUtils-test.js.snap +0 -3
|
@@ -99,10 +99,10 @@ const bubblingEventTypes = {
|
|
|
99
99
|
bubbled: 'onPointerDown',
|
|
100
100
|
},
|
|
101
101
|
},
|
|
102
|
-
|
|
102
|
+
topPointerMove: {
|
|
103
103
|
phasedRegistrationNames: {
|
|
104
|
-
captured: '
|
|
105
|
-
bubbled: '
|
|
104
|
+
captured: 'onPointerMoveCapture',
|
|
105
|
+
bubbled: 'onPointerMove',
|
|
106
106
|
},
|
|
107
107
|
},
|
|
108
108
|
topPointerUp: {
|
|
@@ -111,20 +111,32 @@ const bubblingEventTypes = {
|
|
|
111
111
|
bubbled: 'onPointerUp',
|
|
112
112
|
},
|
|
113
113
|
},
|
|
114
|
-
|
|
114
|
+
topPointerEnter: {
|
|
115
115
|
phasedRegistrationNames: {
|
|
116
|
-
captured: '
|
|
117
|
-
bubbled: '
|
|
116
|
+
captured: 'onPointerEnterCapture',
|
|
117
|
+
bubbled: 'onPointerEnter',
|
|
118
118
|
skipBubbling: true,
|
|
119
119
|
},
|
|
120
120
|
},
|
|
121
|
-
|
|
121
|
+
topPointerLeave: {
|
|
122
122
|
phasedRegistrationNames: {
|
|
123
|
-
captured: '
|
|
124
|
-
bubbled: '
|
|
123
|
+
captured: 'onPointerLeaveCapture',
|
|
124
|
+
bubbled: 'onPointerLeave',
|
|
125
125
|
skipBubbling: true,
|
|
126
126
|
},
|
|
127
127
|
},
|
|
128
|
+
topPointerOver: {
|
|
129
|
+
phasedRegistrationNames: {
|
|
130
|
+
captured: 'onPointerOverCapture',
|
|
131
|
+
bubbled: 'onPointerOver',
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
topPointerOut: {
|
|
135
|
+
phasedRegistrationNames: {
|
|
136
|
+
captured: 'onPointerOutCapture',
|
|
137
|
+
bubbled: 'onPointerOut',
|
|
138
|
+
},
|
|
139
|
+
},
|
|
128
140
|
};
|
|
129
141
|
|
|
130
142
|
const directEventTypes = {
|
|
@@ -312,9 +324,11 @@ const validAttributesForEventProps = ConditionallyIgnoredEventHandlers({
|
|
|
312
324
|
onPointerUp: true,
|
|
313
325
|
onPointerDown: true,
|
|
314
326
|
onPointerCancel: true,
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
327
|
+
onPointerEnter: true,
|
|
328
|
+
onPointerMove: true,
|
|
329
|
+
onPointerLeave: true,
|
|
330
|
+
onPointerOver: true,
|
|
331
|
+
onPointerOut: true,
|
|
318
332
|
});
|
|
319
333
|
|
|
320
334
|
/**
|
|
@@ -99,10 +99,10 @@ const bubblingEventTypes = {
|
|
|
99
99
|
bubbled: 'onPointerDown',
|
|
100
100
|
},
|
|
101
101
|
},
|
|
102
|
-
|
|
102
|
+
topPointerMove: {
|
|
103
103
|
phasedRegistrationNames: {
|
|
104
|
-
captured: '
|
|
105
|
-
bubbled: '
|
|
104
|
+
captured: 'onPointerMoveCapture',
|
|
105
|
+
bubbled: 'onPointerMove',
|
|
106
106
|
},
|
|
107
107
|
},
|
|
108
108
|
topPointerUp: {
|
|
@@ -111,20 +111,32 @@ const bubblingEventTypes = {
|
|
|
111
111
|
bubbled: 'onPointerUp',
|
|
112
112
|
},
|
|
113
113
|
},
|
|
114
|
-
|
|
114
|
+
topPointerEnter: {
|
|
115
115
|
phasedRegistrationNames: {
|
|
116
|
-
captured: '
|
|
117
|
-
bubbled: '
|
|
116
|
+
captured: 'onPointerEnterCapture',
|
|
117
|
+
bubbled: 'onPointerEnter',
|
|
118
118
|
skipBubbling: true,
|
|
119
119
|
},
|
|
120
120
|
},
|
|
121
|
-
|
|
121
|
+
topPointerLeave: {
|
|
122
122
|
phasedRegistrationNames: {
|
|
123
|
-
captured: '
|
|
124
|
-
bubbled: '
|
|
123
|
+
captured: 'onPointerLeaveCapture',
|
|
124
|
+
bubbled: 'onPointerLeave',
|
|
125
125
|
skipBubbling: true,
|
|
126
126
|
},
|
|
127
127
|
},
|
|
128
|
+
topPointerOver: {
|
|
129
|
+
phasedRegistrationNames: {
|
|
130
|
+
captured: 'onPointerOverCapture',
|
|
131
|
+
bubbled: 'onPointerOver',
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
topPointerOut: {
|
|
135
|
+
phasedRegistrationNames: {
|
|
136
|
+
captured: 'onPointerOutCapture',
|
|
137
|
+
bubbled: 'onPointerOut',
|
|
138
|
+
},
|
|
139
|
+
},
|
|
128
140
|
};
|
|
129
141
|
|
|
130
142
|
const directEventTypes = {
|
|
@@ -312,9 +324,11 @@ const validAttributesForEventProps = ConditionallyIgnoredEventHandlers({
|
|
|
312
324
|
onPointerUp: true,
|
|
313
325
|
onPointerDown: true,
|
|
314
326
|
onPointerCancel: true,
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
327
|
+
onPointerEnter: true,
|
|
328
|
+
onPointerMove: true,
|
|
329
|
+
onPointerLeave: true,
|
|
330
|
+
onPointerOver: true,
|
|
331
|
+
onPointerOut: true,
|
|
318
332
|
});
|
|
319
333
|
|
|
320
334
|
/**
|
|
@@ -10,16 +10,15 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
import {type EventSubscription} from '../vendor/emitter/EventEmitter';
|
|
14
|
-
|
|
15
13
|
import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
|
|
16
14
|
|
|
15
|
+
import {type EventSubscription} from '../vendor/emitter/EventEmitter';
|
|
16
|
+
|
|
17
17
|
const BlobManager = require('../Blob/BlobManager');
|
|
18
|
-
const EventTarget = require('event-target-shim');
|
|
19
18
|
const GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');
|
|
20
19
|
const RCTNetworking = require('./RCTNetworking');
|
|
21
|
-
|
|
22
20
|
const base64 = require('base64-js');
|
|
21
|
+
const EventTarget = require('event-target-shim');
|
|
23
22
|
const invariant = require('invariant');
|
|
24
23
|
|
|
25
24
|
const DEBUG_NETWORK_SEND_DELAY: false = false; // Set to a number of milliseconds when debugging
|
|
@@ -625,13 +624,12 @@ class XMLHttpRequest extends (EventTarget(...XHR_EVENTS): any) {
|
|
|
625
624
|
setResponseHeaders(responseHeaders: ?Object): void {
|
|
626
625
|
this.responseHeaders = responseHeaders || null;
|
|
627
626
|
const headers = responseHeaders || {};
|
|
628
|
-
this._lowerCaseResponseHeaders = Object.keys(headers).reduce
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
);
|
|
627
|
+
this._lowerCaseResponseHeaders = Object.keys(headers).reduce<{
|
|
628
|
+
[string]: any,
|
|
629
|
+
}>((lcaseHeaders, headerName) => {
|
|
630
|
+
lcaseHeaders[headerName.toLowerCase()] = headers[headerName];
|
|
631
|
+
return lcaseHeaders;
|
|
632
|
+
}, {});
|
|
635
633
|
}
|
|
636
634
|
|
|
637
635
|
setReadyState(newState: number): void {
|
|
@@ -32,15 +32,21 @@ export type PermissionType =
|
|
|
32
32
|
| 'android.permission.READ_CALL_LOG'
|
|
33
33
|
| 'android.permission.WRITE_CALL_LOG'
|
|
34
34
|
| 'com.android.voicemail.permission.ADD_VOICEMAIL'
|
|
35
|
+
| 'com.android.voicemail.permission.READ_VOICEMAIL'
|
|
36
|
+
| 'com.android.voicemail.permission.WRITE_VOICEMAIL'
|
|
35
37
|
| 'android.permission.USE_SIP'
|
|
36
38
|
| 'android.permission.PROCESS_OUTGOING_CALLS'
|
|
37
39
|
| 'android.permission.BODY_SENSORS'
|
|
40
|
+
| 'android.permission.BODY_SENSORS_BACKGROUND'
|
|
38
41
|
| 'android.permission.SEND_SMS'
|
|
39
42
|
| 'android.permission.RECEIVE_SMS'
|
|
40
43
|
| 'android.permission.READ_SMS'
|
|
41
44
|
| 'android.permission.RECEIVE_WAP_PUSH'
|
|
42
45
|
| 'android.permission.RECEIVE_MMS'
|
|
43
46
|
| 'android.permission.READ_EXTERNAL_STORAGE'
|
|
47
|
+
| 'android.permission.READ_MEDIA_IMAGES',
|
|
48
|
+
| 'android.permission.READ_MEDIA_VIDEO',
|
|
49
|
+
| 'android.permission.READ_MEDIA_AUDIO',
|
|
44
50
|
| 'android.permission.WRITE_EXTERNAL_STORAGE'
|
|
45
51
|
| 'android.permission.BLUETOOTH_CONNECT'
|
|
46
52
|
| 'android.permission.BLUETOOTH_SCAN'
|
|
@@ -50,7 +56,9 @@ export type PermissionType =
|
|
|
50
56
|
| 'android.permission.ACTIVITY_RECOGNITION'
|
|
51
57
|
| 'android.permission.ANSWER_PHONE_CALLS'
|
|
52
58
|
| 'android.permission.READ_PHONE_NUMBERS'
|
|
53
|
-
| 'android.permission.UWB_RANGING'
|
|
59
|
+
| 'android.permission.UWB_RANGING'
|
|
60
|
+
| 'android.permission.POST_NOTIFICATIONS'
|
|
61
|
+
| 'android.permission.NEARBY_WIFI_DEVICES';
|
|
54
62
|
*/
|
|
55
63
|
|
|
56
64
|
export interface Spec extends TurboModule {
|
|
@@ -49,15 +49,21 @@ const PERMISSIONS = Object.freeze({
|
|
|
49
49
|
READ_CALL_LOG: 'android.permission.READ_CALL_LOG',
|
|
50
50
|
WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG',
|
|
51
51
|
ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL',
|
|
52
|
+
READ_VOICEMAIL: 'com.android.voicemail.permission.READ_VOICEMAIL',
|
|
53
|
+
WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',
|
|
52
54
|
USE_SIP: 'android.permission.USE_SIP',
|
|
53
55
|
PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS',
|
|
54
56
|
BODY_SENSORS: 'android.permission.BODY_SENSORS',
|
|
57
|
+
BODY_SENSORS_BACKGROUND: 'android.permission.BODY_SENSORS_BACKGROUND',
|
|
55
58
|
SEND_SMS: 'android.permission.SEND_SMS',
|
|
56
59
|
RECEIVE_SMS: 'android.permission.RECEIVE_SMS',
|
|
57
60
|
READ_SMS: 'android.permission.READ_SMS',
|
|
58
61
|
RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH',
|
|
59
62
|
RECEIVE_MMS: 'android.permission.RECEIVE_MMS',
|
|
60
63
|
READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',
|
|
64
|
+
READ_MEDIA_IMAGES: 'android.permission.READ_MEDIA_IMAGES',
|
|
65
|
+
READ_MEDIA_VIDEO: 'android.permission.READ_MEDIA_VIDEO',
|
|
66
|
+
READ_MEDIA_AUDIO: 'android.permission.READ_MEDIA_AUDIO',
|
|
61
67
|
WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE',
|
|
62
68
|
BLUETOOTH_CONNECT: 'android.permission.BLUETOOTH_CONNECT',
|
|
63
69
|
BLUETOOTH_SCAN: 'android.permission.BLUETOOTH_SCAN',
|
|
@@ -68,6 +74,8 @@ const PERMISSIONS = Object.freeze({
|
|
|
68
74
|
ANSWER_PHONE_CALLS: 'android.permission.ANSWER_PHONE_CALLS',
|
|
69
75
|
READ_PHONE_NUMBERS: 'android.permission.READ_PHONE_NUMBERS',
|
|
70
76
|
UWB_RANGING: 'android.permission.UWB_RANGING',
|
|
77
|
+
POST_NOTIFICATION: 'android.permission.POST_NOTIFICATIONS',
|
|
78
|
+
NEARBY_WIFI_DEVICES: 'android.permission.NEARBY_WIFI_DEVICES',
|
|
71
79
|
});
|
|
72
80
|
|
|
73
81
|
/**
|
|
@@ -85,19 +93,27 @@ class PermissionsAndroid {
|
|
|
85
93
|
ACCESS_MEDIA_LOCATION: string,
|
|
86
94
|
ACTIVITY_RECOGNITION: string,
|
|
87
95
|
ADD_VOICEMAIL: string,
|
|
96
|
+
READ_VOICEMAIL: string,
|
|
97
|
+
WRITE_VOICEMAIL: string,
|
|
88
98
|
ANSWER_PHONE_CALLS: string,
|
|
89
99
|
BLUETOOTH_ADVERTISE: string,
|
|
90
100
|
BLUETOOTH_CONNECT: string,
|
|
91
101
|
BLUETOOTH_SCAN: string,
|
|
92
102
|
BODY_SENSORS: string,
|
|
103
|
+
BODY_SENSORS_BACKGROUND: string,
|
|
93
104
|
CALL_PHONE: string,
|
|
94
105
|
CAMERA: string,
|
|
95
106
|
GET_ACCOUNTS: string,
|
|
107
|
+
NEARBY_WIFI_DEVICES: string,
|
|
108
|
+
POST_NOTIFICATION: string,
|
|
96
109
|
PROCESS_OUTGOING_CALLS: string,
|
|
97
110
|
READ_CALENDAR: string,
|
|
98
111
|
READ_CALL_LOG: string,
|
|
99
112
|
READ_CONTACTS: string,
|
|
100
113
|
READ_EXTERNAL_STORAGE: string,
|
|
114
|
+
READ_MEDIA_IMAGES: string,
|
|
115
|
+
READ_MEDIA_VIDEO: string,
|
|
116
|
+
READ_MEDIA_AUDIO: string,
|
|
101
117
|
READ_PHONE_NUMBERS: string,
|
|
102
118
|
READ_PHONE_STATE: string,
|
|
103
119
|
READ_SMS: string,
|
|
@@ -160,8 +160,8 @@ export type EventHandlers = $ReadOnly<{|
|
|
|
160
160
|
onFocus: (event: FocusEvent) => void,
|
|
161
161
|
onMouseEnter?: (event: MouseEvent) => void,
|
|
162
162
|
onMouseLeave?: (event: MouseEvent) => void,
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
onPointerEnter?: (event: PointerEvent) => void,
|
|
164
|
+
onPointerLeave?: (event: PointerEvent) => void,
|
|
165
165
|
onResponderGrant: (event: PressEvent) => void,
|
|
166
166
|
onResponderMove: (event: PressEvent) => void,
|
|
167
167
|
onResponderRelease: (event: PressEvent) => void,
|
|
@@ -255,20 +255,20 @@ const Transitions = Object.freeze({
|
|
|
255
255
|
},
|
|
256
256
|
});
|
|
257
257
|
|
|
258
|
-
const isActiveSignal = signal =>
|
|
258
|
+
const isActiveSignal = (signal: TouchState) =>
|
|
259
259
|
signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
|
|
260
260
|
signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
|
|
261
261
|
|
|
262
|
-
const isActivationSignal = signal =>
|
|
262
|
+
const isActivationSignal = (signal: TouchState) =>
|
|
263
263
|
signal === 'RESPONDER_ACTIVE_PRESS_OUT' ||
|
|
264
264
|
signal === 'RESPONDER_ACTIVE_PRESS_IN';
|
|
265
265
|
|
|
266
|
-
const isPressInSignal = signal =>
|
|
266
|
+
const isPressInSignal = (signal: TouchState) =>
|
|
267
267
|
signal === 'RESPONDER_INACTIVE_PRESS_IN' ||
|
|
268
268
|
signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
|
|
269
269
|
signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
|
|
270
270
|
|
|
271
|
-
const isTerminalSignal = signal =>
|
|
271
|
+
const isTerminalSignal = (signal: TouchSignal) =>
|
|
272
272
|
signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';
|
|
273
273
|
|
|
274
274
|
const DEFAULT_LONG_PRESS_DELAY_MS = 500;
|
|
@@ -557,12 +557,12 @@ export default class Pressability {
|
|
|
557
557
|
ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()
|
|
558
558
|
) {
|
|
559
559
|
const hoverPointerEvents = {
|
|
560
|
-
|
|
561
|
-
|
|
560
|
+
onPointerEnter: undefined,
|
|
561
|
+
onPointerLeave: undefined,
|
|
562
562
|
};
|
|
563
563
|
const {onHoverIn, onHoverOut} = this._config;
|
|
564
564
|
if (onHoverIn != null) {
|
|
565
|
-
hoverPointerEvents.
|
|
565
|
+
hoverPointerEvents.onPointerEnter = (event: PointerEvent) => {
|
|
566
566
|
this._isHovered = true;
|
|
567
567
|
this._cancelHoverOutDelayTimeout();
|
|
568
568
|
if (onHoverIn != null) {
|
|
@@ -579,7 +579,7 @@ export default class Pressability {
|
|
|
579
579
|
};
|
|
580
580
|
}
|
|
581
581
|
if (onHoverOut != null) {
|
|
582
|
-
hoverPointerEvents.
|
|
582
|
+
hoverPointerEvents.onPointerLeave = (event: PointerEvent) => {
|
|
583
583
|
if (this._isHovered) {
|
|
584
584
|
this._isHovered = false;
|
|
585
585
|
this._cancelHoverInDelayTimeout();
|
|
@@ -808,7 +808,14 @@ export default class Pressability {
|
|
|
808
808
|
}
|
|
809
809
|
}
|
|
810
810
|
|
|
811
|
-
_measureCallback = (
|
|
811
|
+
_measureCallback = (
|
|
812
|
+
left: number,
|
|
813
|
+
top: number,
|
|
814
|
+
width: number,
|
|
815
|
+
height: number,
|
|
816
|
+
pageX: number,
|
|
817
|
+
pageY: number,
|
|
818
|
+
) => {
|
|
812
819
|
if (!left && !top && !width && !height && !pageX && !pageY) {
|
|
813
820
|
return;
|
|
814
821
|
}
|
|
@@ -918,7 +925,11 @@ export default class Pressability {
|
|
|
918
925
|
}
|
|
919
926
|
}
|
|
920
927
|
|
|
921
|
-
function normalizeDelay(
|
|
928
|
+
function normalizeDelay(
|
|
929
|
+
delay: ?number,
|
|
930
|
+
min: number = 0,
|
|
931
|
+
fallback: number = 0,
|
|
932
|
+
): number {
|
|
922
933
|
return Math.max(min, delay ?? fallback);
|
|
923
934
|
}
|
|
924
935
|
|
|
@@ -935,16 +946,15 @@ const getTouchFromPressEvent = (event: PressEvent) => {
|
|
|
935
946
|
};
|
|
936
947
|
|
|
937
948
|
function convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {
|
|
938
|
-
const {
|
|
939
|
-
const {clientX, clientY, timestamp} = input.nativeEvent;
|
|
949
|
+
const {clientX, clientY} = input.nativeEvent;
|
|
940
950
|
return {
|
|
941
|
-
...
|
|
951
|
+
...input,
|
|
942
952
|
nativeEvent: {
|
|
943
953
|
clientX,
|
|
944
954
|
clientY,
|
|
945
955
|
pageX: clientX,
|
|
946
956
|
pageY: clientY,
|
|
947
|
-
timestamp,
|
|
957
|
+
timestamp: input.timeStamp,
|
|
948
958
|
},
|
|
949
959
|
};
|
|
950
960
|
}
|
|
@@ -187,8 +187,8 @@ export type EventHandlers = $ReadOnly<{|
|
|
|
187
187
|
onFocus: (event: FocusEvent) => void,
|
|
188
188
|
onMouseEnter?: (event: MouseEvent) => void,
|
|
189
189
|
onMouseLeave?: (event: MouseEvent) => void,
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
onPointerEnter?: (event: PointerEvent) => void,
|
|
191
|
+
onPointerLeave?: (event: PointerEvent) => void,
|
|
192
192
|
onResponderGrant: (event: PressEvent) => void,
|
|
193
193
|
onResponderMove: (event: PressEvent) => void,
|
|
194
194
|
onResponderRelease: (event: PressEvent) => void,
|
|
@@ -286,20 +286,20 @@ const Transitions = Object.freeze({
|
|
|
286
286
|
},
|
|
287
287
|
});
|
|
288
288
|
|
|
289
|
-
const isActiveSignal = signal =>
|
|
289
|
+
const isActiveSignal = (signal: TouchState) =>
|
|
290
290
|
signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
|
|
291
291
|
signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
|
|
292
292
|
|
|
293
|
-
const isActivationSignal = signal =>
|
|
293
|
+
const isActivationSignal = (signal: TouchState) =>
|
|
294
294
|
signal === 'RESPONDER_ACTIVE_PRESS_OUT' ||
|
|
295
295
|
signal === 'RESPONDER_ACTIVE_PRESS_IN';
|
|
296
296
|
|
|
297
|
-
const isPressInSignal = signal =>
|
|
297
|
+
const isPressInSignal = (signal: TouchState) =>
|
|
298
298
|
signal === 'RESPONDER_INACTIVE_PRESS_IN' ||
|
|
299
299
|
signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
|
|
300
300
|
signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
|
|
301
301
|
|
|
302
|
-
const isTerminalSignal = signal =>
|
|
302
|
+
const isTerminalSignal = (signal: TouchSignal) =>
|
|
303
303
|
signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';
|
|
304
304
|
|
|
305
305
|
const DEFAULT_LONG_PRESS_DELAY_MS = 500;
|
|
@@ -625,12 +625,12 @@ export default class Pressability {
|
|
|
625
625
|
ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()
|
|
626
626
|
) {
|
|
627
627
|
const hoverPointerEvents = {
|
|
628
|
-
|
|
629
|
-
|
|
628
|
+
onPointerEnter: undefined,
|
|
629
|
+
onPointerLeave: undefined,
|
|
630
630
|
};
|
|
631
631
|
const {onHoverIn, onHoverOut} = this._config;
|
|
632
632
|
if (onHoverIn != null) {
|
|
633
|
-
hoverPointerEvents.
|
|
633
|
+
hoverPointerEvents.onPointerEnter = (event: PointerEvent) => {
|
|
634
634
|
this._isHovered = true;
|
|
635
635
|
this._cancelHoverOutDelayTimeout();
|
|
636
636
|
if (onHoverIn != null) {
|
|
@@ -647,7 +647,7 @@ export default class Pressability {
|
|
|
647
647
|
};
|
|
648
648
|
}
|
|
649
649
|
if (onHoverOut != null) {
|
|
650
|
-
hoverPointerEvents.
|
|
650
|
+
hoverPointerEvents.onPointerLeave = (event: PointerEvent) => {
|
|
651
651
|
if (this._isHovered) {
|
|
652
652
|
this._isHovered = false;
|
|
653
653
|
this._cancelHoverInDelayTimeout();
|
|
@@ -891,7 +891,14 @@ export default class Pressability {
|
|
|
891
891
|
}
|
|
892
892
|
}
|
|
893
893
|
|
|
894
|
-
_measureCallback = (
|
|
894
|
+
_measureCallback = (
|
|
895
|
+
left: number,
|
|
896
|
+
top: number,
|
|
897
|
+
width: number,
|
|
898
|
+
height: number,
|
|
899
|
+
pageX: number,
|
|
900
|
+
pageY: number,
|
|
901
|
+
) => {
|
|
895
902
|
if (!left && !top && !width && !height && !pageX && !pageY) {
|
|
896
903
|
return;
|
|
897
904
|
}
|
|
@@ -1001,7 +1008,11 @@ export default class Pressability {
|
|
|
1001
1008
|
}
|
|
1002
1009
|
}
|
|
1003
1010
|
|
|
1004
|
-
function normalizeDelay(
|
|
1011
|
+
function normalizeDelay(
|
|
1012
|
+
delay: ?number,
|
|
1013
|
+
min: number = 0,
|
|
1014
|
+
fallback: number = 0,
|
|
1015
|
+
): number {
|
|
1005
1016
|
return Math.max(min, delay ?? fallback);
|
|
1006
1017
|
}
|
|
1007
1018
|
|
|
@@ -1018,8 +1029,7 @@ const getTouchFromPressEvent = (event: PressEvent) => {
|
|
|
1018
1029
|
};
|
|
1019
1030
|
|
|
1020
1031
|
function convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {
|
|
1021
|
-
const {
|
|
1022
|
-
const {clientX, clientY, timestamp} = input.nativeEvent;
|
|
1032
|
+
const {clientX, clientY} = input.nativeEvent;
|
|
1023
1033
|
// [Windows
|
|
1024
1034
|
const {
|
|
1025
1035
|
pointerType,
|
|
@@ -1036,13 +1046,13 @@ function convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {
|
|
|
1036
1046
|
} = input.nativeEvent;
|
|
1037
1047
|
// Windows]
|
|
1038
1048
|
return {
|
|
1039
|
-
...
|
|
1049
|
+
...input,
|
|
1040
1050
|
nativeEvent: {
|
|
1041
1051
|
clientX,
|
|
1042
1052
|
clientY,
|
|
1043
1053
|
pageX: clientX,
|
|
1044
1054
|
pageY: clientY,
|
|
1045
|
-
timestamp,
|
|
1055
|
+
timestamp: input.timeStamp,
|
|
1046
1056
|
// [Windows
|
|
1047
1057
|
target:
|
|
1048
1058
|
input.nativeEvent.target ??
|
package/Libraries/Promise.js
CHANGED
|
@@ -338,19 +338,22 @@ const AppRegistry = {
|
|
|
338
338
|
},
|
|
339
339
|
};
|
|
340
340
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
(
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
341
|
+
if (!(global.RN$Bridgeless === true)) {
|
|
342
|
+
BatchedBridge.registerCallableModule('AppRegistry', AppRegistry);
|
|
343
|
+
|
|
344
|
+
if (__DEV__) {
|
|
345
|
+
const LogBoxInspector =
|
|
346
|
+
require('../LogBox/LogBoxInspectorContainer').default;
|
|
347
|
+
AppRegistry.registerComponent('LogBox', () => LogBoxInspector);
|
|
348
|
+
} else {
|
|
349
|
+
AppRegistry.registerComponent(
|
|
350
|
+
'LogBox',
|
|
351
|
+
() =>
|
|
352
|
+
function NoOp() {
|
|
353
|
+
return null;
|
|
354
|
+
},
|
|
355
|
+
);
|
|
356
|
+
}
|
|
354
357
|
}
|
|
355
358
|
|
|
356
359
|
module.exports = AppRegistry;
|
|
@@ -146,6 +146,8 @@ module.exports = {
|
|
|
146
146
|
errorMessageForMethod('setLayoutAnimationEnabledExperimental'),
|
|
147
147
|
);
|
|
148
148
|
},
|
|
149
|
+
// Please use AccessibilityInfo.sendAccessibilityEvent_unstable instead.
|
|
150
|
+
// See SetAccessibilityFocusExample in AccessibilityExample.js for a migration example.
|
|
149
151
|
sendAccessibilityEvent: (reactTag: ?number, eventType: number): void =>
|
|
150
152
|
console.error(errorMessageForMethod('sendAccessibilityEvent')),
|
|
151
153
|
showPopupMenu: (
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {RootTag} from 'react-native/Libraries/Types/RootTagTypes';
|
|
12
|
+
|
|
13
|
+
import NativeUIManager from './NativeUIManager';
|
|
14
|
+
|
|
11
15
|
const NativeModules = require('../BatchedBridge/NativeModules');
|
|
16
|
+
const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');
|
|
12
17
|
const Platform = require('../Utilities/Platform');
|
|
13
18
|
const UIManagerProperties = require('./UIManagerProperties');
|
|
14
19
|
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
import NativeUIManager from './NativeUIManager';
|
|
18
|
-
import type {RootTag} from 'react-native/Libraries/Types/RootTagTypes';
|
|
19
|
-
|
|
20
|
-
const viewManagerConfigs = {};
|
|
20
|
+
const viewManagerConfigs: {[string]: any | null} = {};
|
|
21
21
|
|
|
22
22
|
const triedLoadingConfig = new Set();
|
|
23
23
|
|
|
@@ -114,14 +114,14 @@ const UIManagerJS = {
|
|
|
114
114
|
// $FlowFixMe[prop-missing]
|
|
115
115
|
NativeUIManager.getViewManagerConfig = UIManagerJS.getViewManagerConfig;
|
|
116
116
|
|
|
117
|
-
function lazifyViewManagerConfig(viewName) {
|
|
117
|
+
function lazifyViewManagerConfig(viewName: string) {
|
|
118
118
|
const viewConfig = getConstants()[viewName];
|
|
119
119
|
viewManagerConfigs[viewName] = viewConfig;
|
|
120
120
|
if (viewConfig.Manager) {
|
|
121
121
|
defineLazyObjectProperty(viewConfig, 'Constants', {
|
|
122
122
|
get: () => {
|
|
123
123
|
const viewManager = NativeModules[viewConfig.Manager];
|
|
124
|
-
const constants = {};
|
|
124
|
+
const constants: {[string]: mixed} = {};
|
|
125
125
|
viewManager &&
|
|
126
126
|
Object.keys(viewManager).forEach(key => {
|
|
127
127
|
const value = viewManager[key];
|
|
@@ -135,7 +135,7 @@ function lazifyViewManagerConfig(viewName) {
|
|
|
135
135
|
defineLazyObjectProperty(viewConfig, 'Commands', {
|
|
136
136
|
get: () => {
|
|
137
137
|
const viewManager = NativeModules[viewConfig.Manager];
|
|
138
|
-
const commands = {};
|
|
138
|
+
const commands: {[string]: number} = {};
|
|
139
139
|
let index = 0;
|
|
140
140
|
viewManager &&
|
|
141
141
|
Object.keys(viewManager).forEach(key => {
|
|
@@ -9,15 +9,14 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
const NativeModules = require('../BatchedBridge/NativeModules');
|
|
12
|
+
const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');
|
|
12
13
|
const Platform = require('../Utilities/Platform');
|
|
13
14
|
const UIManagerProperties = require('./UIManagerProperties');
|
|
14
15
|
|
|
15
|
-
const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');
|
|
16
|
-
|
|
17
16
|
import NativeUIManager from './NativeUIManager';
|
|
18
17
|
// import type {RootTag} from 'react-native/Libraries/Types/RootTagTypes'; [Windows]
|
|
19
18
|
|
|
20
|
-
const viewManagerConfigs = {};
|
|
19
|
+
const viewManagerConfigs: {[string]: any | null} = {};
|
|
21
20
|
|
|
22
21
|
const triedLoadingConfig = new Set();
|
|
23
22
|
|
|
@@ -97,7 +96,7 @@ UIManagerJS.getConstants = getConstants;
|
|
|
97
96
|
// },
|
|
98
97
|
// $FlowFixMe
|
|
99
98
|
UIManagerJS.getViewManagerConfig = getViewManagerConfig;
|
|
100
|
-
|
|
99
|
+
// $FlowFixMe
|
|
101
100
|
UIManagerJS.hasViewManagerConfig = (viewManagerName: string) =>
|
|
102
101
|
getViewManagerConfig(viewManagerName) != null;
|
|
103
102
|
|
|
@@ -114,14 +113,14 @@ if (!global.nativeCallSyncHook)
|
|
|
114
113
|
// $FlowFixMe
|
|
115
114
|
NativeUIManager.getViewManagerConfig = UIManagerJS.getViewManagerConfig;
|
|
116
115
|
|
|
117
|
-
function lazifyViewManagerConfig(viewName) {
|
|
116
|
+
function lazifyViewManagerConfig(viewName: string) {
|
|
118
117
|
const viewConfig = getConstants()[viewName];
|
|
119
118
|
viewManagerConfigs[viewName] = viewConfig;
|
|
120
119
|
if (viewConfig.Manager) {
|
|
121
120
|
defineLazyObjectProperty(viewConfig, 'Constants', {
|
|
122
121
|
get: () => {
|
|
123
122
|
const viewManager = NativeModules[viewConfig.Manager];
|
|
124
|
-
const constants = {};
|
|
123
|
+
const constants: {[string]: mixed} = {};
|
|
125
124
|
viewManager &&
|
|
126
125
|
Object.keys(viewManager).forEach(key => {
|
|
127
126
|
const value = viewManager[key];
|
|
@@ -135,7 +134,7 @@ function lazifyViewManagerConfig(viewName) {
|
|
|
135
134
|
defineLazyObjectProperty(viewConfig, 'Commands', {
|
|
136
135
|
get: () => {
|
|
137
136
|
const viewManager = NativeModules[viewConfig.Manager];
|
|
138
|
-
const commands = {};
|
|
137
|
+
const commands: {[string]: number} = {};
|
|
139
138
|
let index = 0;
|
|
140
139
|
viewManager &&
|
|
141
140
|
Object.keys(viewManager).forEach(key => {
|
|
@@ -179,7 +178,7 @@ if (!global.nativeCallSyncHook) {
|
|
|
179
178
|
`Accessing view manager configs directly off UIManager via UIManager['${viewManagerName}'] ` +
|
|
180
179
|
`is no longer supported. Use UIManager.getViewManagerConfig('${viewManagerName}') instead.`,
|
|
181
180
|
);
|
|
182
|
-
|
|
181
|
+
// $FlowFixMe
|
|
183
182
|
return UIManagerJS.getViewManagerConfig(viewManagerName);
|
|
184
183
|
},
|
|
185
184
|
});
|