@office-iss/react-native-win32 0.0.0-canary.290 → 0.0.0-canary.292
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/.flowconfig +1 -1
- package/CHANGELOG.json +31 -1
- package/CHANGELOG.md +20 -4
- package/Libraries/Alert/RCTAlertManager.js +17 -0
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js.flow +2 -0
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/components/AnimatedScrollView.js +48 -43
- package/Libraries/Animated/nodes/AnimatedValue.js +2 -1
- package/Libraries/BatchedBridge/MessageQueue.js +2 -2
- package/Libraries/Blob/FileReader.js +219 -8
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
- package/Libraries/Components/Button.js +1 -1
- package/Libraries/Components/Button.win32.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -3
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +15 -0
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +6 -66
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +18 -0
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +71 -0
- package/Libraries/Components/Keyboard/Keyboard.js +4 -2
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +6 -3
- package/Libraries/Components/Pressable/Pressable.js +2 -0
- package/Libraries/Components/Pressable/Pressable.win32.js +2 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +12 -2
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.js +128 -116
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -4
- package/Libraries/Components/TextInput/TextInput.flow.js +35 -43
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +1184 -0
- package/Libraries/Components/TextInput/TextInput.js +65 -1005
- package/Libraries/Components/TextInput/TextInput.win32.js +67 -1037
- package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +13 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +4 -32
- package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +109 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +4 -32
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +45 -0
- package/Libraries/Components/Touchable/Touchable.js +5 -5
- package/Libraries/Components/Touchable/Touchable.win32.js +5 -5
- package/Libraries/Components/Touchable/TouchableBounce.js +12 -6
- package/Libraries/Components/Touchable/TouchableHighlight.js +9 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +4 -4
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +4 -4
- package/Libraries/Components/Touchable/TouchableOpacity.js +11 -5
- package/Libraries/Components/View/ViewAccessibility.js +7 -0
- package/Libraries/Components/View/ViewAccessibility.win32.js +7 -0
- package/Libraries/Components/View/ViewPropTypes.js +1 -1
- package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +4 -1
- package/Libraries/Image/Image.js +17 -0
- package/Libraries/Image/Image.js.flow +2 -2
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageProps.js +5 -4
- package/Libraries/Image/ImageTypes.flow.js +1 -1
- package/Libraries/Lists/FlatList.js +1 -1
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +2 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +140 -0
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
- package/Libraries/Network/RCTNetworking.js +17 -0
- package/Libraries/Network/XMLHttpRequest.js +781 -10
- package/Libraries/NewAppScreen/components/DebugInstructions.js +1 -1
- package/Libraries/NewAppScreen/components/Header.js +1 -1
- package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
- package/Libraries/NewAppScreen/components/ReloadInstructions.js +1 -1
- package/Libraries/Performance/Systrace.js +7 -7
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -2
- package/Libraries/Settings/Settings.js +13 -19
- package/Libraries/Settings/Settings.win32.js +19 -20
- package/Libraries/Settings/SettingsFallback.js +33 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.js +15 -0
- package/Libraries/StyleSheet/Rect.js +1 -0
- package/Libraries/StyleSheet/StyleSheet.js.flow +3 -3
- package/Libraries/StyleSheet/StyleSheetTypes.js +28 -30
- package/Libraries/StyleSheet/flattenStyle.js +7 -1
- package/Libraries/Text/Text.js +3 -3
- package/Libraries/Text/Text.win32.js +3 -3
- package/Libraries/Text/TextProps.js +1 -1
- package/Libraries/Text/TextProps.win32.js +1 -1
- package/Libraries/Utilities/Appearance.js +2 -0
- package/Libraries/Utilities/BackHandler.js +17 -0
- package/Libraries/Utilities/Platform.js +17 -0
- package/Libraries/Utilities/PlatformTypes.js +2 -0
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/WebSocket/WebSocket.js +313 -8
- package/flow/global.js +0 -2
- package/index.win32.js +5 -5
- package/overrides.json +29 -17
- package/package.json +12 -12
- package/src/private/animated/NativeAnimatedHelper.js +1 -1
- package/src/private/animated/NativeAnimatedHelper.win32.js +1 -1
- package/src/private/animated/createAnimatedPropsHook.js +2 -27
- package/src/private/components/{SafeAreaView_INTERNAL_DO_NOT_USE.js → safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js} +6 -6
- package/src/private/components/{HScrollViewNativeComponents.js → scrollview/HScrollViewNativeComponents.js} +8 -8
- package/src/private/components/scrollview/VScrollViewNativeComponents.js +25 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +21 -32
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -6
- package/src/private/inspector/BorderBox.js +1 -1
- package/src/private/inspector/BoxInspector.js +1 -1
- package/src/private/inspector/ElementBox.js +1 -1
- package/src/private/inspector/ElementProperties.js +1 -1
- package/src/private/inspector/Inspector.js +2 -2
- package/src/private/inspector/InspectorOverlay.js +1 -1
- package/src/private/inspector/InspectorPanel.js +1 -1
- package/src/private/inspector/NetworkOverlay.js +1 -1
- package/src/private/inspector/PerformanceOverlay.js +1 -1
- package/src/private/inspector/StyleInspector.js +1 -1
- package/src/private/types/HostComponent.js +1 -1
- package/src/private/types/HostInstance.js +10 -2
- package/src/private/webapis/performance/Performance.js +1 -3
- package/Libraries/Blob/FileReader_new.js +0 -231
- package/Libraries/Blob/FileReader_old.js +0 -186
- package/Libraries/Events/CustomEvent.js +0 -32
- package/Libraries/Events/EventPolyfill.js +0 -239
- package/Libraries/Network/XMLHttpRequest_new.js +0 -794
- package/Libraries/Network/XMLHttpRequest_old.js +0 -701
- package/Libraries/WebSocket/WebSocketEvent.js +0 -30
- package/Libraries/WebSocket/WebSocket_new.js +0 -325
- package/Libraries/WebSocket/WebSocket_old.js +0 -297
- package/Libraries/WebSocket/__mocks__/event-target-shim.js +0 -27
- package/src/private/components/VScrollViewNativeComponents.js +0 -25
- package/src/types/third_party/event-target-shim.d.ts +0 -392
package/.flowconfig
CHANGED
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,37 @@
|
|
|
2
2
|
"name": "@office-iss/react-native-win32",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Thu, 03 Jul 2025 05:23:40 GMT",
|
|
6
|
+
"version": "0.0.0-canary.292",
|
|
7
|
+
"tag": "@office-iss/react-native-win32_v0.0.0-canary.292",
|
|
8
|
+
"comments": {
|
|
9
|
+
"prerelease": [
|
|
10
|
+
{
|
|
11
|
+
"author": "satkh@microsoft.com",
|
|
12
|
+
"package": "@office-iss/react-native-win32",
|
|
13
|
+
"commit": "96e291820b36af670c743a204b4cb4103a012ce2",
|
|
14
|
+
"comment": "intergrate rn 0.80.0-nightly-20250414-70cdf12c4"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"date": "Sat, 21 Jun 2025 05:21:48 GMT",
|
|
21
|
+
"version": "0.0.0-canary.291",
|
|
22
|
+
"tag": "@office-iss/react-native-win32_v0.0.0-canary.291",
|
|
23
|
+
"comments": {
|
|
24
|
+
"prerelease": [
|
|
25
|
+
{
|
|
26
|
+
"author": "30809111+acoates-ms@users.noreply.github.com",
|
|
27
|
+
"package": "@office-iss/react-native-win32",
|
|
28
|
+
"commit": "43cb59d27c487257dca5d6b036755a18d5d72366",
|
|
29
|
+
"comment": "Remove usage of Animated in LogBox"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"date": "Fri, 20 Jun 2025 05:21:53 GMT",
|
|
6
36
|
"version": "0.0.0-canary.290",
|
|
7
37
|
"tag": "@office-iss/react-native-win32_v0.0.0-canary.290",
|
|
8
38
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,33 @@
|
|
|
1
1
|
# Change Log - @office-iss/react-native-win32
|
|
2
2
|
|
|
3
|
-
<!-- This log was last generated on
|
|
3
|
+
<!-- This log was last generated on Thu, 03 Jul 2025 05:23:40 GMT and should not be manually modified. -->
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
-
## 0.0.0-canary.
|
|
7
|
+
## 0.0.0-canary.292
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Thu, 03 Jul 2025 05:23:40 GMT
|
|
10
10
|
|
|
11
11
|
### Changes
|
|
12
12
|
|
|
13
|
-
-
|
|
13
|
+
- intergrate rn 0.80.0-nightly-20250414-70cdf12c4 (satkh@microsoft.com)
|
|
14
14
|
|
|
15
|
+
## 0.0.0-canary.291
|
|
16
|
+
|
|
17
|
+
Sat, 21 Jun 2025 05:21:48 GMT
|
|
18
|
+
|
|
19
|
+
### Changes
|
|
20
|
+
|
|
21
|
+
- Remove usage of Animated in LogBox (30809111+acoates-ms@users.noreply.github.com)
|
|
22
|
+
|
|
23
|
+
## 0.0.0-canary.290
|
|
24
|
+
|
|
25
|
+
Fri, 20 Jun 2025 05:21:53 GMT
|
|
26
|
+
|
|
27
|
+
### Changes
|
|
28
|
+
|
|
29
|
+
- Integrate RN Nightly Build 0.80.0-nightly-20250331-398ac1f71 (kvineeth@microsoft.com)
|
|
30
|
+
|
|
15
31
|
## 0.0.0-canary.289
|
|
16
32
|
|
|
17
33
|
Thu, 19 Jun 2025 17:16:23 GMT
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// NOTE: This file supports backwards compatibility of subpath (deep) imports
|
|
12
|
+
// from 'react-native' with platform-specific extensions. It can be deleted
|
|
13
|
+
// once we remove the "./*" mapping from package.json "exports".
|
|
14
|
+
|
|
15
|
+
import RCTAlertManager from './RCTAlertManager';
|
|
16
|
+
|
|
17
|
+
export default RCTAlertManager;
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
+
import type {NativeSyntheticEvent} from '../Types/CoreEventTypes';
|
|
13
14
|
import type {PlatformConfig} from './AnimatedPlatformConfig';
|
|
14
15
|
|
|
15
16
|
import NativeAnimatedHelper from '../../src/private/animated/NativeAnimatedHelper';
|
|
@@ -22,8 +23,8 @@ export type Mapping =
|
|
|
22
23
|
| {[key: string]: Mapping, ...}
|
|
23
24
|
| AnimatedValue
|
|
24
25
|
| AnimatedValueXY;
|
|
25
|
-
export type EventConfig = {
|
|
26
|
-
listener?: ?
|
|
26
|
+
export type EventConfig<T> = {
|
|
27
|
+
listener?: ?(NativeSyntheticEvent<T>) => mixed,
|
|
27
28
|
useNativeDriver: boolean,
|
|
28
29
|
platformConfig?: PlatformConfig,
|
|
29
30
|
};
|
|
@@ -150,7 +151,7 @@ export class AnimatedEvent {
|
|
|
150
151
|
__isNative: boolean;
|
|
151
152
|
__platformConfig: ?PlatformConfig;
|
|
152
153
|
|
|
153
|
-
constructor(argMapping: $ReadOnlyArray<?Mapping>, config: EventConfig) {
|
|
154
|
+
constructor(argMapping: $ReadOnlyArray<?Mapping>, config: EventConfig<any>) {
|
|
154
155
|
this._argMapping = argMapping;
|
|
155
156
|
|
|
156
157
|
if (config == null) {
|
|
@@ -37,6 +37,8 @@ export type {default as AnimatedDivision} from './nodes/AnimatedDivision';
|
|
|
37
37
|
export type {default as AnimatedModulo} from './nodes/AnimatedModulo';
|
|
38
38
|
export type {default as AnimatedMultiplication} from './nodes/AnimatedMultiplication';
|
|
39
39
|
export type {default as AnimatedSubtraction} from './nodes/AnimatedSubtraction';
|
|
40
|
+
export type {WithAnimatedValue} from './createAnimatedComponent';
|
|
41
|
+
export type {AnimatedComponentType as AnimatedComponent} from './createAnimatedComponent';
|
|
40
42
|
|
|
41
43
|
export const add = AnimatedImplementation.add;
|
|
42
44
|
export const attachNativeEvent = AnimatedImplementation.attachNativeEvent;
|
|
@@ -540,9 +540,9 @@ function unforkEvent(
|
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
542
|
|
|
543
|
-
const event = function (
|
|
543
|
+
const event = function <T>(
|
|
544
544
|
argMapping: $ReadOnlyArray<?Mapping>,
|
|
545
|
-
config: EventConfig
|
|
545
|
+
config: EventConfig<T>,
|
|
546
546
|
): any {
|
|
547
547
|
const animatedEvent = new AnimatedEvent(argMapping, config);
|
|
548
548
|
if (animatedEvent.__isNative) {
|
|
@@ -23,49 +23,51 @@ import useAnimatedProps from '../useAnimatedProps';
|
|
|
23
23
|
import * as React from 'react';
|
|
24
24
|
import {useMemo} from 'react';
|
|
25
25
|
|
|
26
|
-
type
|
|
27
|
-
type
|
|
26
|
+
type AnimatedScrollViewProps = React.ElementConfig<typeof ScrollView>;
|
|
27
|
+
type AnimatedScrollViewInstance = React.ElementRef<typeof ScrollView>;
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* @see https://github.com/facebook/react-native/commit/b8c8562
|
|
31
31
|
*/
|
|
32
|
-
const AnimatedScrollView: AnimatedComponentType<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
const AnimatedScrollView: AnimatedComponentType<
|
|
33
|
+
AnimatedScrollViewProps,
|
|
34
|
+
AnimatedScrollViewInstance,
|
|
35
|
+
> = React.forwardRef(
|
|
36
|
+
function AnimatedScrollViewWithOrWithoutInvertedRefreshControl(
|
|
37
|
+
props,
|
|
38
|
+
forwardedRef,
|
|
39
|
+
) {
|
|
40
|
+
// (Android only) When a ScrollView has a RefreshControl and
|
|
41
|
+
// any `style` property set with an Animated.Value, the CSS
|
|
42
|
+
// gets incorrectly applied twice. This is because ScrollView
|
|
43
|
+
// swaps the parent/child relationship of itself and the
|
|
44
|
+
// RefreshControl component (see ScrollView.js for more details).
|
|
45
|
+
if (
|
|
46
|
+
Platform.OS === 'android' &&
|
|
47
|
+
props.refreshControl != null &&
|
|
48
|
+
props.style != null
|
|
37
49
|
) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return (
|
|
60
|
-
<AnimatedScrollViewWithoutInvertedRefreshControl
|
|
61
|
-
scrollEventThrottle={0.0001}
|
|
62
|
-
{...props}
|
|
63
|
-
ref={forwardedRef}
|
|
64
|
-
/>
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
);
|
|
50
|
+
return (
|
|
51
|
+
// $FlowFixMe - It should return an Animated ScrollView but it returns a ScrollView with Animated props applied.
|
|
52
|
+
<AnimatedScrollViewWithInvertedRefreshControl
|
|
53
|
+
scrollEventThrottle={0.0001}
|
|
54
|
+
{...props}
|
|
55
|
+
ref={forwardedRef}
|
|
56
|
+
// $FlowFixMe[incompatible-type]
|
|
57
|
+
refreshControl={props.refreshControl}
|
|
58
|
+
/>
|
|
59
|
+
);
|
|
60
|
+
} else {
|
|
61
|
+
return (
|
|
62
|
+
<AnimatedScrollViewWithoutInvertedRefreshControl
|
|
63
|
+
scrollEventThrottle={0.0001}
|
|
64
|
+
{...props}
|
|
65
|
+
ref={forwardedRef}
|
|
66
|
+
/>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
);
|
|
69
71
|
|
|
70
72
|
const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
|
|
71
73
|
// $FlowFixMe[incompatible-call]
|
|
@@ -76,8 +78,8 @@ const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
|
|
|
76
78
|
refreshControl: ExactReactElement_DEPRECATED<any>,
|
|
77
79
|
},
|
|
78
80
|
forwardedRef:
|
|
79
|
-
| {current:
|
|
80
|
-
| ((
|
|
81
|
+
| {current: AnimatedScrollViewInstance | null, ...}
|
|
82
|
+
| ((AnimatedScrollViewInstance | null) => mixed),
|
|
81
83
|
) {
|
|
82
84
|
// Split `props` into the animate-able props for the parent (RefreshControl)
|
|
83
85
|
// and child (ScrollView).
|
|
@@ -107,10 +109,13 @@ const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
|
|
|
107
109
|
|
|
108
110
|
// Handle animated props on `NativeDirectionalScrollView`.
|
|
109
111
|
const [scrollViewAnimatedProps, scrollViewRef] = useAnimatedProps<
|
|
110
|
-
|
|
111
|
-
|
|
112
|
+
AnimatedScrollViewProps,
|
|
113
|
+
AnimatedScrollViewInstance,
|
|
112
114
|
>(intermediatePropsForScrollView);
|
|
113
|
-
const ref = useMergeRefs<
|
|
115
|
+
const ref = useMergeRefs<AnimatedScrollViewInstance>(
|
|
116
|
+
scrollViewRef,
|
|
117
|
+
forwardedRef,
|
|
118
|
+
);
|
|
114
119
|
|
|
115
120
|
return (
|
|
116
121
|
// $FlowFixMe[incompatible-use] Investigate useAnimatedProps return value
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
|
|
12
12
|
import type {PlatformConfig} from '../AnimatedPlatformConfig';
|
|
13
|
-
import type Animation
|
|
13
|
+
import type Animation from '../animations/Animation';
|
|
14
|
+
import type {EndCallback} from '../animations/Animation';
|
|
14
15
|
import type {InterpolationConfigType} from './AnimatedInterpolation';
|
|
15
16
|
import type AnimatedNode from './AnimatedNode';
|
|
16
17
|
import type {AnimatedNodeConfig} from './AnimatedNode';
|
|
@@ -35,7 +35,7 @@ const PARAMS = 2;
|
|
|
35
35
|
const MIN_TIME_BETWEEN_FLUSHES_MS = 5;
|
|
36
36
|
|
|
37
37
|
// eslint-disable-next-line no-bitwise
|
|
38
|
-
const
|
|
38
|
+
const TRACE_TAG_REACT = 1 << 13;
|
|
39
39
|
|
|
40
40
|
const DEBUG_INFO_LIMIT = 32;
|
|
41
41
|
|
|
@@ -228,7 +228,7 @@ class MessageQueue {
|
|
|
228
228
|
if (__DEV__) {
|
|
229
229
|
global.nativeTraceBeginAsyncFlow &&
|
|
230
230
|
global.nativeTraceBeginAsyncFlow(
|
|
231
|
-
|
|
231
|
+
TRACE_TAG_REACT,
|
|
232
232
|
'native',
|
|
233
233
|
this._callID,
|
|
234
234
|
);
|
|
@@ -8,13 +8,224 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import
|
|
11
|
+
import type {EventCallback} from '../../src/private/webapis/dom/events/EventTarget';
|
|
12
|
+
import type Blob from './Blob';
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
import Event from '../../src/private/webapis/dom/events/Event';
|
|
15
|
+
import {
|
|
16
|
+
getEventHandlerAttribute,
|
|
17
|
+
setEventHandlerAttribute,
|
|
18
|
+
} from '../../src/private/webapis/dom/events/EventHandlerAttributes';
|
|
19
|
+
import EventTarget from '../../src/private/webapis/dom/events/EventTarget';
|
|
20
|
+
import NativeFileReaderModule from './NativeFileReaderModule';
|
|
21
|
+
import {toByteArray} from 'base64-js';
|
|
16
22
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
type ReadyState =
|
|
24
|
+
| 0 // EMPTY
|
|
25
|
+
| 1 // LOADING
|
|
26
|
+
| 2; // DONE
|
|
27
|
+
|
|
28
|
+
type ReaderResult = string | ArrayBuffer;
|
|
29
|
+
|
|
30
|
+
const EMPTY = 0;
|
|
31
|
+
const LOADING = 1;
|
|
32
|
+
const DONE = 2;
|
|
33
|
+
|
|
34
|
+
class FileReader extends EventTarget {
|
|
35
|
+
static EMPTY: number = EMPTY;
|
|
36
|
+
static LOADING: number = LOADING;
|
|
37
|
+
static DONE: number = DONE;
|
|
38
|
+
|
|
39
|
+
EMPTY: number = EMPTY;
|
|
40
|
+
LOADING: number = LOADING;
|
|
41
|
+
DONE: number = DONE;
|
|
42
|
+
|
|
43
|
+
_readyState: ReadyState;
|
|
44
|
+
_error: ?Error;
|
|
45
|
+
_result: ?ReaderResult;
|
|
46
|
+
_aborted: boolean = false;
|
|
47
|
+
|
|
48
|
+
constructor() {
|
|
49
|
+
super();
|
|
50
|
+
this._reset();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
_reset(): void {
|
|
54
|
+
this._readyState = EMPTY;
|
|
55
|
+
this._error = null;
|
|
56
|
+
this._result = null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
_setReadyState(newState: ReadyState) {
|
|
60
|
+
this._readyState = newState;
|
|
61
|
+
this.dispatchEvent(new Event('readystatechange'));
|
|
62
|
+
if (newState === DONE) {
|
|
63
|
+
if (this._aborted) {
|
|
64
|
+
this.dispatchEvent(new Event('abort'));
|
|
65
|
+
} else if (this._error) {
|
|
66
|
+
this.dispatchEvent(new Event('error'));
|
|
67
|
+
} else {
|
|
68
|
+
this.dispatchEvent(new Event('load'));
|
|
69
|
+
}
|
|
70
|
+
this.dispatchEvent(new Event('loadend'));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
readAsArrayBuffer(blob: ?Blob): void {
|
|
75
|
+
this._aborted = false;
|
|
76
|
+
|
|
77
|
+
if (blob == null) {
|
|
78
|
+
throw new TypeError(
|
|
79
|
+
"Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'",
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
NativeFileReaderModule.readAsDataURL(blob.data).then(
|
|
84
|
+
(text: string) => {
|
|
85
|
+
if (this._aborted) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const base64 = text.split(',')[1];
|
|
90
|
+
const typedArray = toByteArray(base64);
|
|
91
|
+
|
|
92
|
+
this._result = typedArray.buffer;
|
|
93
|
+
this._setReadyState(DONE);
|
|
94
|
+
},
|
|
95
|
+
error => {
|
|
96
|
+
if (this._aborted) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
this._error = error;
|
|
100
|
+
this._setReadyState(DONE);
|
|
101
|
+
},
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
readAsDataURL(blob: ?Blob): void {
|
|
106
|
+
this._aborted = false;
|
|
107
|
+
|
|
108
|
+
if (blob == null) {
|
|
109
|
+
throw new TypeError(
|
|
110
|
+
"Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'",
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
NativeFileReaderModule.readAsDataURL(blob.data).then(
|
|
115
|
+
(text: string) => {
|
|
116
|
+
if (this._aborted) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
this._result = text;
|
|
120
|
+
this._setReadyState(DONE);
|
|
121
|
+
},
|
|
122
|
+
error => {
|
|
123
|
+
if (this._aborted) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
this._error = error;
|
|
127
|
+
this._setReadyState(DONE);
|
|
128
|
+
},
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
readAsText(blob: ?Blob, encoding: string = 'UTF-8'): void {
|
|
133
|
+
this._aborted = false;
|
|
134
|
+
|
|
135
|
+
if (blob == null) {
|
|
136
|
+
throw new TypeError(
|
|
137
|
+
"Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'",
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
NativeFileReaderModule.readAsText(blob.data, encoding).then(
|
|
142
|
+
(text: string) => {
|
|
143
|
+
if (this._aborted) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
this._result = text;
|
|
147
|
+
this._setReadyState(DONE);
|
|
148
|
+
},
|
|
149
|
+
error => {
|
|
150
|
+
if (this._aborted) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
this._error = error;
|
|
154
|
+
this._setReadyState(DONE);
|
|
155
|
+
},
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
abort() {
|
|
160
|
+
this._aborted = true;
|
|
161
|
+
// only call onreadystatechange if there is something to abort, as per spec
|
|
162
|
+
if (this._readyState !== EMPTY && this._readyState !== DONE) {
|
|
163
|
+
this._reset();
|
|
164
|
+
this._setReadyState(DONE);
|
|
165
|
+
}
|
|
166
|
+
// Reset again after, in case modified in handler
|
|
167
|
+
this._reset();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
get readyState(): ReadyState {
|
|
171
|
+
return this._readyState;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
get error(): ?Error {
|
|
175
|
+
return this._error;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
get result(): ?ReaderResult {
|
|
179
|
+
return this._result;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
get onabort(): EventCallback | null {
|
|
183
|
+
return getEventHandlerAttribute(this, 'abort');
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
set onabort(listener: ?EventCallback) {
|
|
187
|
+
setEventHandlerAttribute(this, 'abort', listener);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
get onerror(): EventCallback | null {
|
|
191
|
+
return getEventHandlerAttribute(this, 'error');
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
set onerror(listener: ?EventCallback) {
|
|
195
|
+
setEventHandlerAttribute(this, 'error', listener);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
get onload(): EventCallback | null {
|
|
199
|
+
return getEventHandlerAttribute(this, 'load');
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
set onload(listener: ?EventCallback) {
|
|
203
|
+
setEventHandlerAttribute(this, 'load', listener);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
get onloadstart(): EventCallback | null {
|
|
207
|
+
return getEventHandlerAttribute(this, 'loadstart');
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
set onloadstart(listener: ?EventCallback) {
|
|
211
|
+
setEventHandlerAttribute(this, 'loadstart', listener);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
get onloadend(): EventCallback | null {
|
|
215
|
+
return getEventHandlerAttribute(this, 'loadend');
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
set onloadend(listener: ?EventCallback) {
|
|
219
|
+
setEventHandlerAttribute(this, 'loadend', listener);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
get onprogress(): EventCallback | null {
|
|
223
|
+
return getEventHandlerAttribute(this, 'progress');
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
set onprogress(listener: ?EventCallback) {
|
|
227
|
+
setEventHandlerAttribute(this, 'progress', listener);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export default FileReader;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// NOTE: This file supports backwards compatibility of subpath (deep) imports
|
|
12
|
+
// from 'react-native' with platform-specific extensions. It can be deleted
|
|
13
|
+
// once we remove the "./*" mapping from package.json "exports".
|
|
14
|
+
|
|
15
|
+
import legacySendAccessibilityEvent from './legacySendAccessibilityEvent';
|
|
16
|
+
|
|
17
|
+
export default legacySendAccessibilityEvent;
|
|
@@ -38,7 +38,7 @@ export type ButtonProps = $ReadOnly<{
|
|
|
38
38
|
Handler to be called when the user taps the button. The first function
|
|
39
39
|
argument is an event in form of [GestureResponderEvent](pressevent).
|
|
40
40
|
*/
|
|
41
|
-
onPress
|
|
41
|
+
onPress?: (event?: GestureResponderEvent) => mixed,
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
If `true`, doesn't play system sound on touch.
|
|
@@ -39,7 +39,7 @@ export type ButtonProps = $ReadOnly<{
|
|
|
39
39
|
Handler to be called when the user taps the button. The first function
|
|
40
40
|
argument is an event in form of [GestureResponderEvent](pressevent).
|
|
41
41
|
*/
|
|
42
|
-
onPress
|
|
42
|
+
onPress?: (event?: GestureResponderEvent) => mixed,
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
If `true`, doesn't play system sound on touch.
|
|
@@ -13,8 +13,6 @@ import type {
|
|
|
13
13
|
MeasureLayoutOnSuccessCallback,
|
|
14
14
|
MeasureOnSuccessCallback,
|
|
15
15
|
} from '../../../src/private/types/HostInstance';
|
|
16
|
-
import type {AccessibilityRole} from '../../Components/View/ViewAccessibility';
|
|
17
|
-
import typeof DrawerLayoutAndroidCommon from './DrawerLayoutAndroid.js';
|
|
18
16
|
import type {
|
|
19
17
|
DrawerLayoutAndroidMethods,
|
|
20
18
|
DrawerLayoutAndroidProps,
|
|
@@ -305,4 +303,4 @@ const styles = StyleSheet.create({
|
|
|
305
303
|
},
|
|
306
304
|
});
|
|
307
305
|
|
|
308
|
-
export default DrawerLayoutAndroid as $FlowFixMe
|
|
306
|
+
export default DrawerLayoutAndroid as $FlowFixMe;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @flow strict-local
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
import DrawerLayoutAndroidFallback from './DrawerLayoutAndroidFallback';
|
|
14
|
+
|
|
15
|
+
export default DrawerLayoutAndroidFallback;
|