@office-iss/react-native-win32 0.0.0-canary.291 → 0.0.0-canary.293
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 +43 -1
- package/CHANGELOG.md +22 -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/Blob/URL.js +13 -1
- 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/{Utilities/__mocks__/GlobalPerformanceLogger.js → Components/DrawerAndroid/DrawerLayoutAndroid.ios.js} +3 -4
- 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 +6 -1
- package/Libraries/Components/Pressable/Pressable.win32.js +6 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +12 -2
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +1 -1
- package/Libraries/Components/ScrollView/ScrollView.js +128 -116
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/Switch/Switch.js +7 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -4
- package/Libraries/Components/TextInput/TextInput.flow.js +59 -42
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +1208 -0
- package/Libraries/Components/TextInput/TextInput.js +67 -1005
- package/Libraries/Components/TextInput/TextInput.win32.js +69 -1037
- package/Libraries/{Blob/__mocks__/BlobModule.js → Components/ToastAndroid/ToastAndroid.ios.js} +3 -6
- 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/View.js +18 -21
- package/Libraries/Components/View/View.win32.js +21 -24
- 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/Core/setUpReactDevTools.js +5 -5
- 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 -5
- package/Libraries/Image/ImageSource.js +3 -1
- package/Libraries/Image/ImageSourceUtils.js +4 -2
- package/Libraries/Image/ImageTypes.flow.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -2
- package/Libraries/Lists/FlatList.js +1 -1
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +3 -3
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
- package/Libraries/NativeModules/specs/NativeDevMenu.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/ReactNative/AppContainer-dev.js +3 -2
- package/Libraries/ReactNative/RendererImplementation.js +6 -5
- package/Libraries/ReactNative/renderApplication.js +9 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +4840 -4748
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +4947 -4829
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3998 -3888
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5005 -4948
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2744 -2652
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5020 -4933
- package/Libraries/Renderer/shims/ReactFabric.js +3 -1
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
- package/Libraries/Renderer/shims/ReactNative.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
- 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.d.ts +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +75 -33
- package/Libraries/StyleSheet/flattenStyle.js +7 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +670 -214
- package/Libraries/Text/Text.js +3 -3
- package/Libraries/Text/Text.win32.js +3 -3
- package/Libraries/Text/TextNativeComponent.js +0 -4
- package/Libraries/Text/TextNativeComponent.win32.js +0 -4
- 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.js +1 -288
- package/index.win32.js +8 -297
- package/overrides.json +29 -23
- package/package.json +16 -16
- 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/{devmenu → devsupport/devmenu}/DevMenu.js +1 -1
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/BorderBox.js +3 -3
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/BoxInspector.js +6 -5
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementBox.js +8 -6
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementProperties.js +11 -10
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/Inspector.js +14 -12
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorOverlay.js +5 -4
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorPanel.js +9 -8
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/NetworkOverlay.js +10 -9
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/ReactDevToolsOverlay.js +7 -7
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/StyleInspector.js +7 -6
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/XHRInterceptor.js +2 -2
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/getInspectorDataForViewAtPoint.js +2 -2
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/resolveBoxStyle.js +1 -1
- package/src/private/{inspector → devsupport/devmenu/perfmonitor}/PerformanceOverlay.js +6 -5
- package/src/private/{specs_DEPRECATED/modules → devsupport/devmenu/specs}/NativeDevMenu.js +2 -2
- package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.android.js +1 -1
- package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.ios.js +1 -1
- package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.win32.js +1 -1
- package/src/private/{debugging → devsupport/rndevtools}/setUpFuseboxReactDevToolsDispatcher.js +1 -1
- package/src/private/{fusebox → devsupport/rndevtools}/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
- package/src/private/{specs_DEPRECATED/modules → devsupport/rndevtools/specs}/NativeReactDevToolsSettingsManager.js +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +37 -43
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +8 -8
- package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +3 -0
- package/src/private/types/HostComponent.js +1 -1
- package/src/private/types/HostInstance.js +12 -4
- package/src/private/webapis/performance/Performance.js +1 -3
- package/types/index.d.ts +1 -1
- package/types/public/ReactNativeTypes.d.ts +2 -2
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +0 -38
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +0 -22
- package/Libraries/Blob/FileReader_new.js +0 -231
- package/Libraries/Blob/FileReader_old.js +0 -186
- package/Libraries/Blob/__mocks__/FileReaderModule.js +0 -20
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +0 -32
- package/Libraries/Core/__mocks__/ErrorUtils.js +0 -33
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -19
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +0 -49
- package/Libraries/Events/CustomEvent.js +0 -32
- package/Libraries/Events/EventPolyfill.js +0 -239
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +0 -118
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +0 -134
- package/Libraries/Network/XMLHttpRequest_new.js +0 -794
- package/Libraries/Network/XMLHttpRequest_old.js +0 -701
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +0 -58
- package/Libraries/Utilities/__mocks__/BackHandler.js +0 -45
- package/Libraries/Utilities/__mocks__/PixelRatio.js +0 -25
- 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/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -30
- package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +0 -81
- package/jest/__tests__/setup-test.js +0 -18
- package/src/private/components/VScrollViewNativeComponents.js +0 -25
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +0 -267
- package/src/types/third_party/event-target-shim.d.ts +0 -392
- /package/src/private/{devmenu → devsupport/devmenu}/DevMenu.d.ts +0 -0
- /package/src/private/{debugging → devsupport/rndevtools}/FuseboxSessionObserver.js +0 -0
|
@@ -1,38 +0,0 @@
|
|
|
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
|
-
// These don't actually exist anywhere in the code.
|
|
12
|
-
|
|
13
|
-
'use strict';
|
|
14
|
-
|
|
15
|
-
import type {ModuleConfig} from '../NativeModules';
|
|
16
|
-
|
|
17
|
-
const remoteModulesConfig: $ReadOnlyArray<ModuleConfig> = [
|
|
18
|
-
[
|
|
19
|
-
'RemoteModule1',
|
|
20
|
-
null,
|
|
21
|
-
['remoteMethod', 'promiseMethod', 'promiseReturningMethod', 'syncMethod'],
|
|
22
|
-
[2 /* promiseReturningMethod */],
|
|
23
|
-
[3 /* syncMethod */],
|
|
24
|
-
],
|
|
25
|
-
[
|
|
26
|
-
'RemoteModule2',
|
|
27
|
-
null,
|
|
28
|
-
['remoteMethod', 'promiseMethod', 'promiseReturningMethod', 'syncMethod'],
|
|
29
|
-
[2 /* promiseReturningMethod */],
|
|
30
|
-
[3 /* syncMethod */],
|
|
31
|
-
],
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
const MessageQueueTestConfig = {
|
|
35
|
-
remoteModuleConfig: remoteModulesConfig,
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
module.exports = MessageQueueTestConfig;
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
*/
|
|
9
|
-
|
|
10
|
-
'use strict';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Dummy module that only exists for the sake of proving that the message queue
|
|
14
|
-
* correctly dispatches to commonJS modules. The `testHook` is overridden by test
|
|
15
|
-
* cases.
|
|
16
|
-
*/
|
|
17
|
-
const MessageQueueTestModule = {
|
|
18
|
-
testHook1: function () {},
|
|
19
|
-
testHook2: function () {},
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
module.exports = MessageQueueTestModule;
|
|
@@ -1,231 +0,0 @@
|
|
|
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
|
|
8
|
-
* @format
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import type {EventCallback} from '../../src/private/webapis/dom/events/EventTarget';
|
|
12
|
-
import type Blob from './Blob';
|
|
13
|
-
|
|
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';
|
|
22
|
-
|
|
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;
|
|
@@ -1,186 +0,0 @@
|
|
|
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
|
|
8
|
-
* @format
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import type Blob from './Blob';
|
|
12
|
-
|
|
13
|
-
import NativeFileReaderModule from './NativeFileReaderModule';
|
|
14
|
-
import {toByteArray} from 'base64-js';
|
|
15
|
-
import EventTarget from 'event-target-shim';
|
|
16
|
-
|
|
17
|
-
type ReadyState =
|
|
18
|
-
| 0 // EMPTY
|
|
19
|
-
| 1 // LOADING
|
|
20
|
-
| 2; // DONE
|
|
21
|
-
|
|
22
|
-
type ReaderResult = string | ArrayBuffer;
|
|
23
|
-
|
|
24
|
-
const READER_EVENTS = [
|
|
25
|
-
'abort',
|
|
26
|
-
'error',
|
|
27
|
-
'load',
|
|
28
|
-
'loadstart',
|
|
29
|
-
'loadend',
|
|
30
|
-
'progress',
|
|
31
|
-
];
|
|
32
|
-
|
|
33
|
-
const EMPTY = 0 as const;
|
|
34
|
-
const LOADING = 1 as const;
|
|
35
|
-
const DONE = 2 as const;
|
|
36
|
-
|
|
37
|
-
class FileReader extends (EventTarget(...READER_EVENTS): typeof EventTarget) {
|
|
38
|
-
static EMPTY: 0 = EMPTY;
|
|
39
|
-
static LOADING: 1 = LOADING;
|
|
40
|
-
static DONE: 2 = DONE;
|
|
41
|
-
|
|
42
|
-
EMPTY: 0 = EMPTY;
|
|
43
|
-
LOADING: 1 = LOADING;
|
|
44
|
-
DONE: 2 = DONE;
|
|
45
|
-
|
|
46
|
-
_readyState: ReadyState;
|
|
47
|
-
_error: ?Error;
|
|
48
|
-
_result: ?ReaderResult;
|
|
49
|
-
_aborted: boolean = false;
|
|
50
|
-
|
|
51
|
-
constructor() {
|
|
52
|
-
super();
|
|
53
|
-
this._reset();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
_reset(): void {
|
|
57
|
-
this._readyState = EMPTY;
|
|
58
|
-
this._error = null;
|
|
59
|
-
this._result = null;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
_setReadyState(newState: ReadyState) {
|
|
63
|
-
this._readyState = newState;
|
|
64
|
-
this.dispatchEvent({type: 'readystatechange'});
|
|
65
|
-
if (newState === DONE) {
|
|
66
|
-
if (this._aborted) {
|
|
67
|
-
this.dispatchEvent({type: 'abort'});
|
|
68
|
-
} else if (this._error) {
|
|
69
|
-
this.dispatchEvent({type: 'error'});
|
|
70
|
-
} else {
|
|
71
|
-
this.dispatchEvent({type: 'load'});
|
|
72
|
-
}
|
|
73
|
-
this.dispatchEvent({type: 'loadend'});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
readAsArrayBuffer(blob: ?Blob): void {
|
|
78
|
-
this._aborted = false;
|
|
79
|
-
|
|
80
|
-
if (blob == null) {
|
|
81
|
-
throw new TypeError(
|
|
82
|
-
"Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'",
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
NativeFileReaderModule.readAsDataURL(blob.data).then(
|
|
87
|
-
(text: string) => {
|
|
88
|
-
if (this._aborted) {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const base64 = text.split(',')[1];
|
|
93
|
-
const typedArray = toByteArray(base64);
|
|
94
|
-
|
|
95
|
-
this._result = typedArray.buffer;
|
|
96
|
-
this._setReadyState(DONE);
|
|
97
|
-
},
|
|
98
|
-
error => {
|
|
99
|
-
if (this._aborted) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
this._error = error;
|
|
103
|
-
this._setReadyState(DONE);
|
|
104
|
-
},
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
readAsDataURL(blob: ?Blob): void {
|
|
109
|
-
this._aborted = false;
|
|
110
|
-
|
|
111
|
-
if (blob == null) {
|
|
112
|
-
throw new TypeError(
|
|
113
|
-
"Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'",
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
NativeFileReaderModule.readAsDataURL(blob.data).then(
|
|
118
|
-
(text: string) => {
|
|
119
|
-
if (this._aborted) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
this._result = text;
|
|
123
|
-
this._setReadyState(DONE);
|
|
124
|
-
},
|
|
125
|
-
error => {
|
|
126
|
-
if (this._aborted) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
this._error = error;
|
|
130
|
-
this._setReadyState(DONE);
|
|
131
|
-
},
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
readAsText(blob: ?Blob, encoding: string = 'UTF-8'): void {
|
|
136
|
-
this._aborted = false;
|
|
137
|
-
|
|
138
|
-
if (blob == null) {
|
|
139
|
-
throw new TypeError(
|
|
140
|
-
"Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'",
|
|
141
|
-
);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
NativeFileReaderModule.readAsText(blob.data, encoding).then(
|
|
145
|
-
(text: string) => {
|
|
146
|
-
if (this._aborted) {
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
this._result = text;
|
|
150
|
-
this._setReadyState(DONE);
|
|
151
|
-
},
|
|
152
|
-
error => {
|
|
153
|
-
if (this._aborted) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
this._error = error;
|
|
157
|
-
this._setReadyState(DONE);
|
|
158
|
-
},
|
|
159
|
-
);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
abort() {
|
|
163
|
-
this._aborted = true;
|
|
164
|
-
// only call onreadystatechange if there is something to abort, as per spec
|
|
165
|
-
if (this._readyState !== EMPTY && this._readyState !== DONE) {
|
|
166
|
-
this._reset();
|
|
167
|
-
this._setReadyState(DONE);
|
|
168
|
-
}
|
|
169
|
-
// Reset again after, in case modified in handler
|
|
170
|
-
this._reset();
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
get readyState(): ReadyState {
|
|
174
|
-
return this._readyState;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
get error(): ?Error {
|
|
178
|
-
return this._error;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
get result(): ?ReaderResult {
|
|
182
|
-
return this._result;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
export default FileReader;
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
|
8
|
-
* @format
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const FileReaderModule = {
|
|
12
|
-
async readAsText(): Promise<string> {
|
|
13
|
-
return '';
|
|
14
|
-
},
|
|
15
|
-
async readAsDataURL(): Promise<string> {
|
|
16
|
-
return 'data:text/plain;base64,NDI=';
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
module.exports = FileReaderModule;
|
|
@@ -1,32 +0,0 @@
|
|
|
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 type {HostComponent} from '../../../../src/private/types/HostComponent';
|
|
14
|
-
|
|
15
|
-
import requireNativeComponent from '../../../ReactNative/requireNativeComponent';
|
|
16
|
-
import * as React from 'react';
|
|
17
|
-
|
|
18
|
-
const RCTRefreshControl: HostComponent<{}> = requireNativeComponent<{}>(
|
|
19
|
-
'RCTRefreshControl',
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
class RefreshControlMock extends React.Component<{...}> {
|
|
23
|
-
static latestRef: ?RefreshControlMock;
|
|
24
|
-
componentDidMount() {
|
|
25
|
-
RefreshControlMock.latestRef = this;
|
|
26
|
-
}
|
|
27
|
-
render(): React.MixedElement {
|
|
28
|
-
return <RCTRefreshControl />;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
module.exports = RefreshControlMock;
|
|
@@ -1,33 +0,0 @@
|
|
|
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
|
-
*/
|
|
9
|
-
|
|
10
|
-
// This mock only provides short-circuited methods of applyWithGuard and guard.
|
|
11
|
-
// A lot of modules rely on these two functions. This mock relieves their tests
|
|
12
|
-
// from depending on the real ErrorUtils module. If you need real error handling
|
|
13
|
-
// don't use this mock.
|
|
14
|
-
'use strict';
|
|
15
|
-
|
|
16
|
-
function execute(fun, context, args) {
|
|
17
|
-
return fun.apply(context, args);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function reportError(error) {
|
|
21
|
-
throw error;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const ErrorUtils = {
|
|
25
|
-
apply: jest.fn(execute),
|
|
26
|
-
applyWithGuard: jest.fn(execute),
|
|
27
|
-
guard: jest.fn(callback => callback),
|
|
28
|
-
inGuard: jest.fn().mockReturnValue(true),
|
|
29
|
-
reportError: jest.fn(reportError),
|
|
30
|
-
setGlobalHandler: jest.fn(),
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
module.exports = ErrorUtils;
|
|
@@ -1,19 +0,0 @@
|
|
|
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
|
|
8
|
-
* @format
|
|
9
|
-
* @oncall react_native
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import typeof NativeExceptionsManager from '../NativeExceptionsManager';
|
|
13
|
-
|
|
14
|
-
export default ({
|
|
15
|
-
reportFatalException: jest.fn(),
|
|
16
|
-
reportSoftException: jest.fn(),
|
|
17
|
-
dismissRedbox: jest.fn(),
|
|
18
|
-
reportException: jest.fn(),
|
|
19
|
-
}: NativeExceptionsManager);
|
|
@@ -1,49 +0,0 @@
|
|
|
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
|
-
import type {
|
|
12
|
-
EventSubscription,
|
|
13
|
-
IEventEmitter,
|
|
14
|
-
} from '../../vendor/emitter/EventEmitter';
|
|
15
|
-
|
|
16
|
-
import RCTDeviceEventEmitter from '../RCTDeviceEventEmitter';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Mock `NativeEventEmitter` to ignore Native Modules.
|
|
20
|
-
*/
|
|
21
|
-
export default class NativeEventEmitter<
|
|
22
|
-
TEventToArgsMap: $ReadOnly<Record<string, $ReadOnlyArray<mixed>>>,
|
|
23
|
-
> implements IEventEmitter<TEventToArgsMap>
|
|
24
|
-
{
|
|
25
|
-
addListener<TEvent: $Keys<TEventToArgsMap>>(
|
|
26
|
-
eventType: TEvent,
|
|
27
|
-
listener: (...args: TEventToArgsMap[TEvent]) => mixed,
|
|
28
|
-
context?: mixed,
|
|
29
|
-
): EventSubscription {
|
|
30
|
-
return RCTDeviceEventEmitter.addListener(eventType, listener, context);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
emit<TEvent: $Keys<TEventToArgsMap>>(
|
|
34
|
-
eventType: TEvent,
|
|
35
|
-
...args: TEventToArgsMap[TEvent]
|
|
36
|
-
): void {
|
|
37
|
-
RCTDeviceEventEmitter.emit(eventType, ...args);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
removeAllListeners<TEvent: $Keys<TEventToArgsMap>>(
|
|
41
|
-
eventType?: ?TEvent,
|
|
42
|
-
): void {
|
|
43
|
-
RCTDeviceEventEmitter.removeAllListeners(eventType);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
listenerCount<TEvent: $Keys<TEventToArgsMap>>(eventType: TEvent): number {
|
|
47
|
-
return RCTDeviceEventEmitter.listenerCount(eventType);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
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
|
-
// Make sure global Event is defined
|
|
12
|
-
import EventPolyfill from './EventPolyfill';
|
|
13
|
-
|
|
14
|
-
type CustomEvent$Options = $ReadOnly<{
|
|
15
|
-
bubbles?: boolean,
|
|
16
|
-
cancelable?: boolean,
|
|
17
|
-
composed?: boolean,
|
|
18
|
-
detail?: {...},
|
|
19
|
-
}>;
|
|
20
|
-
|
|
21
|
-
class CustomEvent extends EventPolyfill {
|
|
22
|
-
detail: ?{...};
|
|
23
|
-
|
|
24
|
-
constructor(typeArg: string, options: CustomEvent$Options) {
|
|
25
|
-
const {bubbles, cancelable, composed} = options;
|
|
26
|
-
super(typeArg, {bubbles, cancelable, composed});
|
|
27
|
-
|
|
28
|
-
this.detail = options.detail; // this would correspond to `NativeEvent` in NativeSyntheticEvent
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export default CustomEvent;
|