@office-iss/react-native-win32 0.79.0 → 0.80.0-preview.1
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 +10 -3
- package/CHANGELOG.json +112 -19
- package/CHANGELOG.md +46 -11
- package/IntegrationTests/ImageCachePolicyTest.js +1 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -4
- package/Libraries/Alert/Alert.d.ts +4 -1
- package/Libraries/Alert/Alert.js +3 -0
- package/Libraries/Alert/RCTAlertManager.js +17 -0
- package/Libraries/Animated/Animated.js.flow +1 -3
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js +2 -2
- package/Libraries/Animated/AnimatedExports.js.flow +140 -0
- package/Libraries/Animated/AnimatedImplementation.js +2 -123
- package/Libraries/Animated/Easing.js +13 -15
- package/Libraries/Animated/animations/Animation.js +8 -4
- package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
- package/Libraries/Animated/components/AnimatedScrollView.js +48 -42
- package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
- package/Libraries/Animated/createAnimatedComponent.js +105 -57
- package/Libraries/Animated/nodes/AnimatedNode.js +4 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +46 -26
- package/Libraries/Animated/nodes/AnimatedValue.js +16 -7
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
- package/Libraries/AppState/AppState.js +7 -2
- package/Libraries/BatchedBridge/MessageQueue.js +2 -2
- package/Libraries/BatchedBridge/NativeModules.js +2 -0
- package/Libraries/Blob/BlobManager.js +1 -0
- package/Libraries/Blob/FileReader.js +219 -8
- package/Libraries/Blob/URL.js +37 -12
- package/Libraries/Blob/URLSearchParams.js +106 -31
- package/Libraries/Blob/URLSearchParams.js.flow +12 -7
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +1 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +1 -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/{NewAppScreen/components/Colors.js → Components/DrawerAndroid/DrawerLayoutAndroid.ios.js} +6 -10
- 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 +5 -3
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +6 -3
- package/Libraries/Components/Pressable/Pressable.js +20 -4
- package/Libraries/Components/Pressable/Pressable.win32.js +20 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +25 -3
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +3 -3
- package/Libraries/Components/ScrollView/ScrollView.js +132 -122
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/Switch/Switch.d.ts +3 -0
- package/Libraries/Components/Switch/Switch.js +8 -4
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -4
- package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +2 -1
- package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +70 -33
- package/Libraries/Components/TextInput/TextInput.flow.js +100 -51
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +1208 -0
- package/Libraries/Components/TextInput/TextInput.js +88 -1027
- package/Libraries/Components/TextInput/TextInput.win32.js +89 -1059
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
- package/Libraries/{Modal/ModalInjection.js → Components/ToastAndroid/ToastAndroid.ios.js} +3 -5
- 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/Tests/TouchableWin32Test.d.ts +2 -1
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
- package/Libraries/Components/Touchable/Touchable.js +5 -5
- package/Libraries/Components/Touchable/Touchable.win32.js +5 -5
- package/Libraries/Components/Touchable/TouchableBounce.js +14 -7
- package/Libraries/Components/Touchable/TouchableHighlight.js +10 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +6 -6
- package/Libraries/Components/Touchable/TouchableOpacity.js +13 -6
- package/Libraries/Components/View/View.js +18 -21
- package/Libraries/Components/View/View.win32.js +21 -24
- package/Libraries/Components/View/ViewAccessibility.js +25 -1
- package/Libraries/Components/View/ViewAccessibility.win32.js +9 -1
- package/Libraries/Components/View/ViewPropTypes.js +49 -3
- package/Libraries/Components/View/ViewPropTypes.win32.js +49 -3
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/setUpReactDevTools.js +5 -5
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +3 -3
- package/Libraries/EventEmitter/NativeEventEmitter.js +9 -4
- package/Libraries/Image/AssetSourceResolver.js +17 -4
- package/Libraries/Image/Image.d.ts +26 -10
- package/Libraries/Image/Image.js +17 -0
- package/Libraries/Image/Image.js.flow +5 -5
- package/Libraries/Image/ImageBackground.js +2 -0
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageProps.js +22 -17
- package/Libraries/Image/ImageSource.js +3 -1
- package/Libraries/Image/ImageSourceUtils.js +4 -2
- package/Libraries/Image/ImageTypes.flow.js +1 -1
- package/Libraries/Image/Tests/ImageWin32Test.d.ts +2 -1
- package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
- package/Libraries/Interaction/InteractionManager.d.ts +13 -0
- package/Libraries/Interaction/InteractionManager.js +1 -1
- package/Libraries/Interaction/PanResponder.js +3 -3
- package/Libraries/Interaction/TaskQueue.js +1 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -2
- package/Libraries/Lists/FlatList.js +8 -11
- package/Libraries/Lists/SectionList.js +39 -42
- package/Libraries/Lists/SectionListModern.js +25 -34
- package/Libraries/Lists/VirtualizedList.js +1 -0
- package/Libraries/Lists/VirtualizedSectionList.js +1 -0
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +140 -0
- package/Libraries/Modal/Modal.js +33 -7
- package/Libraries/NativeComponent/BaseViewConfig.android.js +2 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -0
- package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +1 -0
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
- package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js +17 -0
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +781 -10
- package/Libraries/Performance/Systrace.js +7 -7
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.win32.js +1 -1
- package/Libraries/ReactNative/AppContainer-dev.js +5 -4
- package/Libraries/ReactNative/AppRegistry.flow.js +49 -0
- package/Libraries/ReactNative/AppRegistry.js +2 -322
- package/Libraries/ReactNative/AppRegistry.js.flow +23 -0
- package/Libraries/ReactNative/AppRegistryImpl.js +316 -0
- package/Libraries/ReactNative/FabricUIManager.js +10 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -4
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -4
- package/Libraries/ReactNative/RendererImplementation.js +10 -5
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -0
- package/Libraries/ReactNative/renderApplication.js +9 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +3 -3
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +51 -0
- 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/ReactNativeTypes.js +3 -3
- package/Libraries/Settings/Settings.ios.js +1 -0
- 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/PlatformColorValueTypesIOS.js +6 -0
- package/Libraries/StyleSheet/Rect.js +1 -0
- package/Libraries/StyleSheet/StyleSheet.js +31 -200
- package/Libraries/StyleSheet/StyleSheet.js.flow +188 -0
- package/Libraries/StyleSheet/{StyleSheet.win32.js → StyleSheetExports.js} +2 -151
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +112 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +130 -52
- package/Libraries/StyleSheet/flattenStyle.js +14 -4
- package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
- package/Libraries/StyleSheet/processBackgroundImage.js +670 -214
- package/Libraries/Text/Text.d.ts +2 -5
- 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 +5 -33
- package/Libraries/Text/TextProps.win32.js +5 -30
- package/Libraries/Types/CodegenTypesNamespace.d.ts +45 -0
- package/Libraries/{Blob/__mocks__/BlobModule.js → Types/CodegenTypesNamespace.js} +4 -6
- package/Libraries/Types/CoreEventTypes.d.ts +6 -1
- package/Libraries/Types/CoreEventTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.win32.js +1 -1
- package/Libraries/Utilities/Appearance.js +2 -0
- package/Libraries/Utilities/BackHandler.js +17 -0
- package/Libraries/Utilities/DeviceInfo.js +2 -0
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/Platform.js +17 -0
- package/Libraries/Utilities/PlatformTypes.js +11 -3
- package/Libraries/Utilities/ReactNativeTestTools.js +2 -2
- package/Libraries/Utilities/codegenNativeCommands.d.ts +18 -0
- package/Libraries/Utilities/codegenNativeComponent.d.ts +26 -0
- package/Libraries/WebSocket/WebSocket.js +313 -8
- package/Libraries/vendor/core/ErrorUtils.js +28 -2
- package/Libraries/vendor/emitter/EventEmitter.js +6 -2
- package/flow/global.js +1 -0
- package/index.js +51 -331
- package/index.win32.js +71 -352
- package/interface.js +0 -4
- package/jest/resolver.js +31 -0
- package/overrides.json +45 -47
- package/package.json +26 -26
- package/src/private/animated/NativeAnimatedHelper.js +21 -8
- package/src/private/animated/NativeAnimatedHelper.win32.js +21 -8
- package/src/private/animated/createAnimatedPropsHook.js +11 -16
- package/src/private/animated/createAnimatedPropsMemoHook.js +1 -2
- 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 +4 -4
- 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 +82 -80
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +9 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -13
- package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +3 -0
- package/src/private/styles/composeStyles.js +12 -5
- package/src/private/types/HostComponent.js +1 -1
- package/src/private/types/HostInstance.js +67 -1
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -5
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -18
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +6 -0
- package/src/private/webapis/performance/Performance.js +1 -3
- package/src/private/webapis/performance/PerformanceEntry.js +6 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +10 -1
- package/src/types/globals.d.ts +42 -0
- package/src-win/Libraries/Components/TextInput/Tests/TextInputTest.tsx +7 -7
- package/src-win/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +3 -3
- package/src-win/Libraries/Image/Tests/ImageWin32Test.tsx +1 -1
- package/src-win/Libraries/Text/Text.d.ts +2 -5
- package/types/index.d.ts +6 -3
- 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/NewAppScreen/components/DebugInstructions.js +0 -41
- package/Libraries/NewAppScreen/components/Header.js +0 -77
- package/Libraries/NewAppScreen/components/HermesBadge.js +0 -53
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +0 -148
- package/Libraries/NewAppScreen/components/ReloadInstructions.js +0 -39
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/NewAppScreen/index.js +0 -25
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +0 -58
- package/Libraries/Utilities/DeviceInfo.win32.js +0 -19
- package/Libraries/Utilities/__mocks__/BackHandler.js +0 -45
- package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +0 -16
- 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/flow/jest.js +0 -1287
- package/jest/__tests__/setup-test.js +0 -18
- package/src/private/components/VScrollViewNativeComponents.js +0 -25
- package/src/private/utilities/ensureInstance.js +0 -21
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +0 -267
- package/types/modules/LaunchScreen.d.ts +0 -18
- /package/src/private/{devmenu → devsupport/devmenu}/DevMenu.d.ts +0 -0
- /package/src/private/{debugging → devsupport/rndevtools}/FuseboxSessionObserver.js +0 -0
|
@@ -188,25 +188,12 @@ export default class ReadOnlyNode {
|
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
getRootNode(): ReadOnlyNode {
|
|
191
|
-
if (
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return this.ownerDocument ?? this;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
return this;
|
|
198
|
-
} else {
|
|
199
|
-
// eslint-disable-next-line consistent-this
|
|
200
|
-
let lastKnownParent: ReadOnlyNode = this;
|
|
201
|
-
let nextPossibleParent: ?ReadOnlyNode = this.parentNode;
|
|
202
|
-
|
|
203
|
-
while (nextPossibleParent != null) {
|
|
204
|
-
lastKnownParent = nextPossibleParent;
|
|
205
|
-
nextPossibleParent = nextPossibleParent.parentNode;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
return lastKnownParent;
|
|
191
|
+
if (this.isConnected) {
|
|
192
|
+
// If this is the document node, then the root node is itself.
|
|
193
|
+
return this.ownerDocument ?? this;
|
|
209
194
|
}
|
|
195
|
+
|
|
196
|
+
return this;
|
|
210
197
|
}
|
|
211
198
|
|
|
212
199
|
hasChildNodes(): boolean {
|
|
@@ -129,6 +129,12 @@ export function getNativeElementReference(
|
|
|
129
129
|
// $FlowExpectedError[incompatible-cast] We know ReadOnlyElement instances provide InternalInstanceHandle
|
|
130
130
|
const instanceHandle = getInstanceHandle(node) as InternalInstanceHandle;
|
|
131
131
|
|
|
132
|
+
if (isReactNativeDocumentElementInstanceHandle(instanceHandle)) {
|
|
133
|
+
return getNativeElementReferenceFromReactNativeDocumentElementInstanceHandle(
|
|
134
|
+
instanceHandle,
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
132
138
|
// $FlowExpectedError[incompatible-return]
|
|
133
139
|
return getRendererProxy().getNodeFromInternalInstanceHandle(instanceHandle);
|
|
134
140
|
}
|
|
@@ -226,9 +226,7 @@ export default class Performance {
|
|
|
226
226
|
* Returns a double, measured in milliseconds.
|
|
227
227
|
* https://developer.mozilla.org/en-US/docs/Web/API/Performance/now
|
|
228
228
|
*/
|
|
229
|
-
now()
|
|
230
|
-
return getCurrentTimeStamp();
|
|
231
|
-
}
|
|
229
|
+
now: () => DOMHighResTimeStamp = getCurrentTimeStamp;
|
|
232
230
|
|
|
233
231
|
/**
|
|
234
232
|
* An extension that allows to get back to JS all currently logged marks/measures
|
|
@@ -11,7 +11,12 @@
|
|
|
11
11
|
// flowlint unsafe-getters-setters:off
|
|
12
12
|
|
|
13
13
|
export type DOMHighResTimeStamp = number;
|
|
14
|
-
export type PerformanceEntryType =
|
|
14
|
+
export type PerformanceEntryType =
|
|
15
|
+
| 'mark'
|
|
16
|
+
| 'measure'
|
|
17
|
+
| 'event'
|
|
18
|
+
| 'longtask'
|
|
19
|
+
| 'resource';
|
|
15
20
|
|
|
16
21
|
export type PerformanceEntryJSON = {
|
|
17
22
|
name: string,
|
|
@@ -24,6 +24,7 @@ export const RawPerformanceEntryTypeValues = {
|
|
|
24
24
|
MEASURE: 2,
|
|
25
25
|
EVENT: 3,
|
|
26
26
|
LONGTASK: 4,
|
|
27
|
+
RESOURCE: 5,
|
|
27
28
|
};
|
|
28
29
|
|
|
29
30
|
export function rawToPerformanceEntry(
|
|
@@ -95,6 +96,8 @@ export function performanceEntryTypeToRaw(
|
|
|
95
96
|
return RawPerformanceEntryTypeValues.EVENT;
|
|
96
97
|
case 'longtask':
|
|
97
98
|
return RawPerformanceEntryTypeValues.LONGTASK;
|
|
99
|
+
case 'resource':
|
|
100
|
+
return RawPerformanceEntryTypeValues.RESOURCE;
|
|
98
101
|
default:
|
|
99
102
|
// Verify exhaustive check with Flow
|
|
100
103
|
(type: empty);
|
|
@@ -24,10 +24,19 @@ export type RawPerformanceEntry = {
|
|
|
24
24
|
startTime: number,
|
|
25
25
|
duration: number,
|
|
26
26
|
|
|
27
|
-
// For
|
|
27
|
+
// For PerformanceEventTiming only
|
|
28
28
|
processingStart?: number,
|
|
29
29
|
processingEnd?: number,
|
|
30
30
|
interactionId?: number,
|
|
31
|
+
|
|
32
|
+
// For PerformanceResourceTiming only
|
|
33
|
+
fetchStart?: number,
|
|
34
|
+
requestStart?: number,
|
|
35
|
+
connectStart?: number,
|
|
36
|
+
connectEnd?: number,
|
|
37
|
+
responseStart?: number,
|
|
38
|
+
responseEnd?: number,
|
|
39
|
+
responseStatus?: number,
|
|
31
40
|
};
|
|
32
41
|
|
|
33
42
|
export type OpaqueNativeObserverHandle = mixed;
|
package/src/types/globals.d.ts
CHANGED
|
@@ -57,6 +57,48 @@ declare global {
|
|
|
57
57
|
|
|
58
58
|
const HermesInternal: null | {};
|
|
59
59
|
|
|
60
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly) */
|
|
61
|
+
interface DOMRectReadOnly {
|
|
62
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/bottom) */
|
|
63
|
+
readonly bottom: number;
|
|
64
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/height) */
|
|
65
|
+
readonly height: number;
|
|
66
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/left) */
|
|
67
|
+
readonly left: number;
|
|
68
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/right) */
|
|
69
|
+
readonly right: number;
|
|
70
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/top) */
|
|
71
|
+
readonly top: number;
|
|
72
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/width) */
|
|
73
|
+
readonly width: number;
|
|
74
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/x) */
|
|
75
|
+
readonly x: number;
|
|
76
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/y) */
|
|
77
|
+
readonly y: number;
|
|
78
|
+
toJSON(): any;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
interface DOMRect extends DOMRectReadOnly {
|
|
82
|
+
height: number;
|
|
83
|
+
width: number;
|
|
84
|
+
x: number;
|
|
85
|
+
y: number;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
interface DOMRectInit {
|
|
89
|
+
height?: number | undefined;
|
|
90
|
+
width?: number | undefined;
|
|
91
|
+
x?: number | undefined;
|
|
92
|
+
y?: number | undefined;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
var DOMRect: {
|
|
96
|
+
prototype: DOMRect;
|
|
97
|
+
new (x?: number, y?: number, width?: number, height?: number): DOMRect;
|
|
98
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/fromRect_static) */
|
|
99
|
+
fromRect(other?: DOMRectInit): DOMRect;
|
|
100
|
+
};
|
|
101
|
+
|
|
60
102
|
// #region Timer Functions
|
|
61
103
|
|
|
62
104
|
function clearInterval(handle: number): void;
|
|
@@ -114,49 +114,49 @@ export const examples = [
|
|
|
114
114
|
{
|
|
115
115
|
title: 'Autofocus Example',
|
|
116
116
|
description: 'autoFocus in action',
|
|
117
|
-
render()
|
|
117
|
+
render() {
|
|
118
118
|
return (<AutoFocusingTextInputTest />);
|
|
119
119
|
},
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
122
|
title: 'Placeholders Example',
|
|
123
123
|
description: 'placeholder in action',
|
|
124
|
-
render()
|
|
124
|
+
render() {
|
|
125
125
|
return (<PlaceholderTextInputTest />);
|
|
126
126
|
},
|
|
127
127
|
},
|
|
128
128
|
{
|
|
129
129
|
title: 'Controlled Example',
|
|
130
130
|
description: 'Controlling inputs in action',
|
|
131
|
-
render()
|
|
131
|
+
render() {
|
|
132
132
|
return (<ControllingTextInputTest />);
|
|
133
133
|
},
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
title: 'Focus and Blur Example',
|
|
137
137
|
description: 'onFocus/onBlur in action',
|
|
138
|
-
render()
|
|
138
|
+
render() {
|
|
139
139
|
return (<BlurringAndFocusingTextInputTest />);
|
|
140
140
|
},
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
title: 'ContentSizeChange Example',
|
|
144
144
|
description: 'onContentSizeChange in action',
|
|
145
|
-
render()
|
|
145
|
+
render() {
|
|
146
146
|
return (<LayoutListeningTextInputTest />);
|
|
147
147
|
},
|
|
148
148
|
},
|
|
149
149
|
{
|
|
150
150
|
title: 'Control via onKeyPress Example',
|
|
151
151
|
description: 'onKeyPress in action',
|
|
152
|
-
render()
|
|
152
|
+
render() {
|
|
153
153
|
return (<KeyPressListeningTextInputTest />);
|
|
154
154
|
},
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
title: 'Super Styling Example',
|
|
158
158
|
description: 'Styling in action',
|
|
159
|
-
render()
|
|
159
|
+
render() {
|
|
160
160
|
return (<StyleTextInputTest />);
|
|
161
161
|
},
|
|
162
162
|
},
|
|
@@ -481,21 +481,21 @@ export const examples = [
|
|
|
481
481
|
{
|
|
482
482
|
title: 'TouchableWithoutFeedback Example',
|
|
483
483
|
description: 'A simple example implementation of without feedback behavior',
|
|
484
|
-
render()
|
|
484
|
+
render() {
|
|
485
485
|
return <TouchableWithoutFeedbackExample />;
|
|
486
486
|
},
|
|
487
487
|
},
|
|
488
488
|
{
|
|
489
489
|
title: 'TouchableHighlight Example',
|
|
490
490
|
description: 'A simple example implementation of highlight behavior',
|
|
491
|
-
render()
|
|
491
|
+
render() {
|
|
492
492
|
return <TouchableHighlightExample />;
|
|
493
493
|
},
|
|
494
494
|
},
|
|
495
495
|
{
|
|
496
496
|
title: 'Imperative Focus on TouchableWin32 Example',
|
|
497
497
|
description: 'A simple example implementation of imperative focus behavior',
|
|
498
|
-
render()
|
|
498
|
+
render() {
|
|
499
499
|
return <TouchableFocusExample />;
|
|
500
500
|
},
|
|
501
501
|
}
|
|
@@ -16,8 +16,7 @@ import {TextStyle, ViewStyle} from '../StyleSheet/StyleSheetTypes';
|
|
|
16
16
|
import {
|
|
17
17
|
GestureResponderEvent,
|
|
18
18
|
LayoutChangeEvent,
|
|
19
|
-
|
|
20
|
-
TextLayoutEventData,
|
|
19
|
+
TextLayoutEvent,
|
|
21
20
|
} from '../Types/CoreEventTypes';
|
|
22
21
|
import type {
|
|
23
22
|
IKeyboardEvent,
|
|
@@ -248,9 +247,7 @@ export interface TextProps
|
|
|
248
247
|
/**
|
|
249
248
|
* Invoked on Text layout
|
|
250
249
|
*/
|
|
251
|
-
onTextLayout?:
|
|
252
|
-
| ((event: NativeSyntheticEvent<TextLayoutEventData>) => void)
|
|
253
|
-
| undefined;
|
|
250
|
+
onTextLayout?: ((event: TextLayoutEvent) => void) | undefined;
|
|
254
251
|
|
|
255
252
|
/**
|
|
256
253
|
* This function is called on press.
|
package/types/index.d.ts
CHANGED
|
@@ -68,8 +68,7 @@
|
|
|
68
68
|
/// <reference path="modules/BatchedBridge.d.ts" />
|
|
69
69
|
/// <reference path="modules/Codegen.d.ts" />
|
|
70
70
|
/// <reference path="modules/Devtools.d.ts" />
|
|
71
|
-
/// <reference
|
|
72
|
-
/// <reference path="modules/LaunchScreen.d.ts" />
|
|
71
|
+
/// <reference path="../src/types/globals.d.ts" />
|
|
73
72
|
|
|
74
73
|
export * from '../Libraries/ActionSheetIOS/ActionSheetIOS';
|
|
75
74
|
export * from '../Libraries/Alert/Alert';
|
|
@@ -139,10 +138,11 @@ export * from '../Libraries/StyleSheet/processColor';
|
|
|
139
138
|
export * from '../Libraries/Text/Text';
|
|
140
139
|
export * from '../Libraries/TurboModule/RCTExport';
|
|
141
140
|
export * as TurboModuleRegistry from '../Libraries/TurboModule/TurboModuleRegistry';
|
|
141
|
+
export * as CodegenTypes from '../Libraries/Types/CodegenTypesNamespace';
|
|
142
142
|
export * from '../Libraries/Types/CoreEventTypes';
|
|
143
143
|
export * from '../Libraries/Utilities/Appearance';
|
|
144
144
|
export * from '../Libraries/Utilities/BackHandler';
|
|
145
|
-
export * from '../src/private/devmenu/DevMenu';
|
|
145
|
+
export * from '../src/private/devsupport/devmenu/DevMenu';
|
|
146
146
|
export * from '../Libraries/Utilities/DevSettings';
|
|
147
147
|
export * from '../Libraries/Utilities/Dimensions';
|
|
148
148
|
export * from '../Libraries/Utilities/PixelRatio';
|
|
@@ -159,5 +159,8 @@ export * from './public/Insets';
|
|
|
159
159
|
export * from './public/ReactNativeRenderer';
|
|
160
160
|
export * from './public/ReactNativeTypes';
|
|
161
161
|
|
|
162
|
+
export {default as codegenNativeCommands} from '../Libraries/Utilities/codegenNativeCommands';
|
|
163
|
+
export {default as codegenNativeComponent} from '../Libraries/Utilities/codegenNativeComponent';
|
|
164
|
+
|
|
162
165
|
// Export platform specific types
|
|
163
166
|
export * from '../Libraries/platform-types';
|
|
@@ -39,7 +39,7 @@ export type MeasureLayoutOnSuccessCallback = (
|
|
|
39
39
|
* The methods described here are available on most of the default components provided by React Native.
|
|
40
40
|
* Note, however, that they are not available on composite components that aren't directly backed by a
|
|
41
41
|
* native view. This will generally include most components that you define in your own app.
|
|
42
|
-
* For more information, see [Direct Manipulation](https://reactnative.dev/docs/direct-manipulation).
|
|
42
|
+
* For more information, see [Direct Manipulation](https://reactnative.dev/docs/the-new-architecture/direct-manipulation-new-architecture).
|
|
43
43
|
* @see https://github.com/facebook/react-native/blob/master/Libraries/Renderer/shims/ReactNativeTypes.js#L87
|
|
44
44
|
*/
|
|
45
45
|
export interface NativeMethods {
|
|
@@ -95,7 +95,7 @@ export interface NativeMethods {
|
|
|
95
95
|
* This function sends props straight to native. They will not participate in
|
|
96
96
|
* future diff process - this means that if you do not include them in the
|
|
97
97
|
* next render, they will remain active (see [Direct
|
|
98
|
-
* Manipulation](https://reactnative.dev/docs/direct-manipulation)).
|
|
98
|
+
* Manipulation](https://reactnative.dev/docs/the-new-architecture/direct-manipulation-new-architecture)).
|
|
99
99
|
*/
|
|
100
100
|
setNativeProps(nativeProps: object): void;
|
|
101
101
|
|
|
@@ -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;
|