@office-iss/react-native-win32 0.73.1 → 0.74.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/.eslintignore +1 -1
- package/.flowconfig +11 -3
- package/CHANGELOG.json +422 -44
- package/CHANGELOG.md +162 -26
- package/IntegrationTests/AccessibilityManagerTest.js +2 -2
- package/IntegrationTests/AppEventsTest.js +2 -2
- package/IntegrationTests/LayoutEventsTest.js +8 -10
- package/IntegrationTests/LoggingTestModule.js +1 -2
- package/IntegrationTests/websocket_integration_test_server.js +1 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
- package/Libraries/Alert/NativeAlertManager.js +4 -26
- package/Libraries/Animated/Animated.js +2 -2
- package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
- package/Libraries/Animated/NativeAnimatedHelper.win32.js +14 -11
- package/Libraries/Animated/NativeAnimatedModule.js +4 -68
- package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
- package/Libraries/Animated/animations/Animation.js +6 -22
- package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
- package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
- package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
- package/Libraries/Animated/createAnimatedComponent.js +45 -40
- package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +21 -1
- package/Libraries/AppState/NativeAppState.js +4 -24
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/Blob.js +1 -4
- package/Libraries/Blob/BlobManager.js +6 -8
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/NativeBlobModule.js +4 -50
- package/Libraries/Blob/NativeFileReaderModule.js +4 -13
- package/Libraries/BugReporting/NativeBugReporting.js +4 -12
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +5 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +48 -7
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +3 -2
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
- package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
- package/Libraries/Components/Button/ButtonWin32.Props.js +2 -2
- package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
- package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
- package/Libraries/Components/Button/ButtonWin32.js +82 -82
- package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
- package/Libraries/Components/Button.js +103 -107
- package/Libraries/Components/Button.win32.js +297 -301
- package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
- package/Libraries/Components/EnterString.win32.d.ts +12 -12
- package/Libraries/Components/EnterString.win32.js +81 -81
- package/Libraries/Components/EnterString.win32.js.map +1 -1
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +69 -0
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +24 -0
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +33 -0
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +13 -0
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/Pressable/Pressable.win32.js +1 -1
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
- package/Libraries/Components/ScrollView/ScrollView.js +12 -38
- package/Libraries/Components/ScrollView/ScrollView.win32.js +12 -38
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
- package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
- package/Libraries/Components/Switch/Switch.js +0 -2
- package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
- package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
- package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
- package/Libraries/Components/TextInput/Tests/TextInputTest.js +127 -127
- package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
- package/Libraries/Components/TextInput/TextInput.js +65 -32
- package/Libraries/Components/TextInput/TextInput.win32.js +70 -37
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +343 -344
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -3
- package/Libraries/Components/Touchable/Touchable.win32.js +2 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
- package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -37
- package/Libraries/Components/Touchable/TouchableWin32.Props.js +2 -2
- package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
- package/Libraries/Components/Touchable/TouchableWin32.Types.js +2 -2
- package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
- package/Libraries/Components/Touchable/TouchableWin32.js +506 -506
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
- package/Libraries/Components/View/View.js +0 -11
- package/Libraries/Components/View/View.win32.js +18 -17
- package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
- package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
- package/Libraries/Components/View/ViewPropTypes.js +36 -36
- package/Libraries/Components/View/ViewPropTypes.win32.js +36 -36
- package/Libraries/Core/InitializeCore.js +1 -1
- package/Libraries/Core/NativeExceptionsManager.js +3 -93
- package/Libraries/Core/ReactNativeVersion.js +12 -6
- package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +6 -6
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
- package/Libraries/Core/Timers/NativeTiming.js +3 -16
- package/Libraries/Core/registerCallableModule.js +42 -0
- package/Libraries/Core/setUpPerformance.js +2 -2
- package/Libraries/Core/setUpPerformanceObserver.js +3 -1
- package/Libraries/Debugging/DebuggingOverlay.js +111 -0
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
- package/Libraries/Image/AssetSourceResolver.js +5 -5
- package/Libraries/Image/AssetUtils.js +4 -5
- package/Libraries/Image/Image.android.js +146 -174
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +53 -79
- package/Libraries/Image/Image.win32.js +52 -74
- package/Libraries/Image/ImageBackground.js +2 -2
- package/Libraries/Image/ImageInjection.js +76 -18
- package/Libraries/Image/ImageTypes.d.ts +25 -25
- package/Libraries/Image/ImageTypes.flow.js +71 -0
- package/Libraries/Image/ImageTypes.js +7 -7
- package/Libraries/Image/ImageTypes.js.map +1 -1
- package/Libraries/Image/ImageUtils.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +18 -0
- package/Libraries/Image/NativeImageEditor.js +3 -42
- package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
- package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
- package/Libraries/Image/NativeImageLoaderWin32.js +4 -36
- package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
- package/Libraries/Image/NativeImageStoreIOS.js +3 -23
- package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
- package/Libraries/Image/Tests/ImageWin32Test.js +21 -21
- package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
- package/Libraries/Image/resolveAssetSource.js +59 -26
- package/Libraries/Inspector/ElementProperties.js +26 -52
- package/Libraries/Inspector/Inspector.js +122 -186
- package/Libraries/Inspector/Inspector.win32.js +118 -185
- package/Libraries/Inspector/InspectorOverlay.js +21 -33
- package/Libraries/Inspector/InspectorOverlay.win32.js +22 -33
- package/Libraries/Inspector/InspectorPanel.js +3 -17
- package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
- package/Libraries/Interaction/FrameRateLogger.js +8 -18
- package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
- package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
- package/Libraries/Linking/NativeIntentAndroid.js +3 -20
- package/Libraries/Linking/NativeLinkingManager.js +3 -17
- package/Libraries/Lists/FillRateHelper.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -2
- package/Libraries/Lists/FlatList.js +6 -1
- package/Libraries/Lists/SectionList.d.ts +6 -1
- package/Libraries/Lists/ViewabilityHelper.js +1 -1
- package/Libraries/Lists/VirtualizeUtils.js +1 -1
- package/Libraries/Lists/VirtualizedList.js +1 -1
- package/Libraries/Lists/VirtualizedListContext.js +1 -1
- package/Libraries/Lists/VirtualizedSectionList.js +1 -1
- package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
- package/Libraries/Modal/Modal.js +43 -11
- package/Libraries/Modal/NativeModalManager.js +3 -11
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
- package/Libraries/MutationObserver/MutationObserver.js +1 -1
- package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
- package/Libraries/MutationObserver/MutationRecord.js +12 -10
- package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
- package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
- package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
- package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
- package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
- package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
- package/Libraries/Network/FormData.js +3 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
- package/Libraries/Network/NativeNetworkingIOS.js +4 -28
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
- package/Libraries/PersonaCoin/PersonaCoin.js +14 -14
- package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +19 -19
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -1
- package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
- package/Libraries/PersonaCoin/PersonaCoinTypes.js +23 -23
- package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -1
- package/Libraries/Pressability/Pressability.js +12 -2
- package/Libraries/Pressability/Pressability.win32.js +12 -2
- package/Libraries/Pressability/usePressability.js +7 -0
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
- package/Libraries/ReactNative/AppContainer-dev.js +192 -0
- package/Libraries/ReactNative/AppContainer-prod.js +53 -0
- package/Libraries/ReactNative/AppContainer.js +6 -149
- package/Libraries/ReactNative/AppRegistry.js +3 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
- package/Libraries/ReactNative/FabricUIManager.js +6 -0
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
- package/Libraries/ReactNative/NativeI18nManager.js +3 -18
- package/Libraries/ReactNative/NativeUIManager.js +4 -112
- package/Libraries/ReactNative/PaperUIManager.js +8 -7
- package/Libraries/ReactNative/PaperUIManager.win32.js +26 -7
- package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
- package/Libraries/ReactNative/RendererImplementation.js +11 -0
- package/Libraries/ReactNative/UIManager.d.ts +11 -34
- package/Libraries/ReactNative/UIManager.js +2 -23
- package/Libraries/ReactNative/UIManagerProperties.js +0 -2
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
- package/Libraries/ReactNative/renderApplication.js +9 -6
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
- package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
- package/Libraries/Settings/NativeSettingsManager.js +4 -16
- package/Libraries/Share/NativeShareModule.js +3 -13
- package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
- package/Libraries/StyleSheet/StyleSheet.js +5 -28
- package/Libraries/StyleSheet/StyleSheet.win32.js +5 -28
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +47 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +16 -11
- package/Libraries/StyleSheet/flattenStyle.js +2 -2
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/Text/Text.d.ts +85 -0
- package/Libraries/Text/Text.js +0 -6
- package/Libraries/Text/Text.win32.js +0 -6
- package/Libraries/Text/TextAncestor.js +2 -3
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
- package/Libraries/Types/ReactDevToolsTypes.js +58 -0
- package/Libraries/Types/UIManagerJSInterface.js +16 -0
- package/Libraries/Utilities/DebugEnvironment.js +1 -4
- package/Libraries/Utilities/Dimensions.js +8 -16
- package/Libraries/Utilities/Dimensions.win32.js +8 -16
- package/Libraries/Utilities/FocusManager.win32.js +2 -0
- package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
- package/Libraries/Utilities/NativeAppearance.js +3 -26
- package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
- package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
- package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
- package/Libraries/Utilities/PixelRatio.d.ts +4 -4
- package/Libraries/Utilities/Platform.android.js +4 -0
- package/Libraries/Utilities/Platform.d.ts +3 -0
- package/Libraries/Utilities/Platform.flow.js +7 -0
- package/Libraries/Utilities/Platform.flow.win32.js +18 -5
- package/Libraries/Utilities/Platform.ios.js +11 -0
- package/Libraries/Utilities/Platform.win32.js +9 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeComponent.js +4 -6
- package/Libraries/Utilities/createPerformanceLogger.js +2 -74
- package/Libraries/Utilities/useMergeRefs.js +5 -9
- package/Libraries/Vibration/NativeVibration.js +3 -14
- package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/platform-types.d.ts +2 -3
- package/Libraries/vendor/emitter/EventEmitter.js +1 -0
- package/babel.config.js +1 -1
- package/flow/jest.js +1 -1
- package/flow/react.js +15 -0
- package/index.js +66 -99
- package/index.win32.js +60 -101
- package/jest/assetFileTransformer.js +1 -1
- package/jest/local-setup.js +0 -5
- package/jest/mockModal.js +2 -1
- package/jest/mockScrollView.js +1 -2
- package/jest/renderer.js +1 -1
- package/jest/setup.js +6 -3
- package/jest.config.js +2 -1
- package/overrides.json +157 -130
- package/package.json +26 -26
- package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
- package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
- package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
- package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
- package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
- package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
- package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
- package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
- package/src/private/specs/components/PopupMenuAndroidNativeComponent.js +47 -0
- package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
- package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
- package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
- package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
- package/src/private/specs/components/SwitchNativeComponent.js +61 -0
- package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
- package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
- package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +39 -0
- package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
- package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
- package/src/private/specs/modules/NativeAlertManager.js +35 -0
- package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
- package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
- package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
- package/src/private/specs/modules/NativeAppState.js +33 -0
- package/src/private/specs/modules/NativeAppearance.js +36 -0
- package/src/private/specs/modules/NativeBlobModule.js +59 -0
- package/src/private/specs/modules/NativeBugReporting.js +20 -0
- package/src/private/specs/modules/NativeClipboard.js +21 -0
- package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
- package/src/private/specs/modules/NativeDevMenu.js +23 -0
- package/src/private/specs/modules/NativeDevSettings.js +33 -0
- package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
- package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
- package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
- package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
- package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
- package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
- package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
- package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
- package/src/private/specs/modules/NativeI18nManager.js +28 -0
- package/src/private/specs/modules/NativeImageEditor.js +52 -0
- package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
- package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
- package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
- package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
- package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
- package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
- package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
- package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
- package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
- package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
- package/src/private/specs/modules/NativeLinkingManager.js +27 -0
- package/src/private/specs/modules/NativeLogBox.js +20 -0
- package/src/private/specs/modules/NativeModalManager.js +21 -0
- package/src/private/specs/modules/NativeMutationObserver.js +58 -0
- package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
- package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
- package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
- package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
- package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
- package/src/private/specs/modules/NativePlatformConstantsWin.js +37 -0
- package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
- package/src/private/specs/modules/NativeRedBox.js +20 -0
- package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
- package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
- package/src/private/specs/modules/NativeSettingsManager.js +25 -0
- package/src/private/specs/modules/NativeShareModule.js +23 -0
- package/src/private/specs/modules/NativeSoundManager.js +22 -0
- package/src/private/specs/modules/NativeSourceCode.js +36 -0
- package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
- package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
- package/src/private/specs/modules/NativeTiming.js +26 -0
- package/src/private/specs/modules/NativeToastAndroid.js +38 -0
- package/src/private/specs/modules/NativeUIManager.js +118 -0
- package/src/private/specs/modules/NativeVibration.js +24 -0
- package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
- package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
- package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
- package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
- package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
- package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
- package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
- package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
- package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
- package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
- package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +161 -0
- package/{src → src-win}/Libraries/Components/Button/ButtonWin32.tsx +3 -3
- package/{src → src-win}/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +9 -10
- package/{src → src-win}/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
- package/{src → src-win}/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
- package/{src → src-win}/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
- package/src-win/Libraries/Text/Text.d.ts +304 -0
- package/{src → src-win}/Libraries/platform-types.d.ts +2 -3
- package/types/modules/globals.d.ts +1 -0
- package/Libraries/Components/Button.flow.js +0 -265
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
- package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -63
- package/Libraries/Components/Text/TextWin32.Props.js +0 -3
- package/Libraries/Components/Text/TextWin32.Props.js.map +0 -1
- package/Libraries/Components/Text/TextWin32.d.ts +0 -6
- package/Libraries/Components/Text/TextWin32.js +0 -18
- package/Libraries/Components/Text/TextWin32.js.map +0 -1
- package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
- package/Libraries/Image/Image.flow.js +0 -64
- package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
- package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
- package/src/Libraries/Components/Text/TextWin32.Props.ts +0 -82
- package/src/Libraries/Components/Text/TextWin32.tsx +0 -25
- /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
- /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
- /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
- /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
- /package/{src → src-win}/Libraries/Components/Button/ButtonWin32.Props.ts +0 -0
- /package/{src → src-win}/Libraries/Components/EnterString.win32.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/TextInput/Tests/TextInputTest.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Props.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Types.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/View/ViewWin32.d.ts +0 -0
- /package/{src → src-win}/Libraries/Image/ImageTypes.ts +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/ImageWin32Test.tsx +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
- /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoin.tsx +0 -0
- /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +0 -0
- /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinTypes.ts +0 -0
- /package/{src → src-win}/Libraries/Utilities/FocusManager.win32.d.ts +0 -0
- /package/{src → src-win}/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +0 -0
|
@@ -4,19 +4,22 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @flow
|
|
7
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {ImageStyleProp} from '../StyleSheet/StyleSheet';
|
|
11
|
+
import type {ImageStyle, ImageStyleProp} from '../StyleSheet/StyleSheet';
|
|
12
12
|
import type {RootTag} from '../Types/RootTagTypes';
|
|
13
|
-
import type {ImageIOS} from './
|
|
14
|
-
import type {ImageProps as ImagePropsType} from './ImageProps';
|
|
13
|
+
import type {AbstractImageIOS, ImageIOS} from './ImageTypes.flow';
|
|
15
14
|
|
|
15
|
+
import {createRootTag} from '../ReactNative/RootTag';
|
|
16
16
|
import flattenStyle from '../StyleSheet/flattenStyle';
|
|
17
17
|
import StyleSheet from '../StyleSheet/StyleSheet';
|
|
18
18
|
import ImageAnalyticsTagContext from './ImageAnalyticsTagContext';
|
|
19
|
-
import
|
|
19
|
+
import {
|
|
20
|
+
unstable_getImageComponentDecorator,
|
|
21
|
+
useWrapRefWithImageAttachedCallbacks,
|
|
22
|
+
} from './ImageInjection';
|
|
20
23
|
import {getImageSourcesFromImageProps} from './ImageSourceUtils';
|
|
21
24
|
import {convertObjectFitToResizeMode} from './ImageUtils';
|
|
22
25
|
import ImageViewNativeComponent from './ImageViewNativeComponent';
|
|
@@ -27,8 +30,8 @@ import * as React from 'react';
|
|
|
27
30
|
function getSize(
|
|
28
31
|
uri: string,
|
|
29
32
|
success: (width: number, height: number) => void,
|
|
30
|
-
failure?: (error:
|
|
31
|
-
) {
|
|
33
|
+
failure?: (error: mixed) => void,
|
|
34
|
+
): void {
|
|
32
35
|
NativeImageLoaderIOS.getSize(uri)
|
|
33
36
|
.then(([width, height]) => success(width, height))
|
|
34
37
|
.catch(
|
|
@@ -43,9 +46,9 @@ function getSizeWithHeaders(
|
|
|
43
46
|
uri: string,
|
|
44
47
|
headers: {[string]: string, ...},
|
|
45
48
|
success: (width: number, height: number) => void,
|
|
46
|
-
failure?: (error:
|
|
47
|
-
):
|
|
48
|
-
|
|
49
|
+
failure?: (error: mixed) => void,
|
|
50
|
+
): void {
|
|
51
|
+
NativeImageLoaderIOS.getSizeWithHeaders(uri, headers)
|
|
49
52
|
.then(function (sizes) {
|
|
50
53
|
success(sizes.width, sizes.height);
|
|
51
54
|
})
|
|
@@ -61,41 +64,30 @@ function prefetchWithMetadata(
|
|
|
61
64
|
url: string,
|
|
62
65
|
queryRootName: string,
|
|
63
66
|
rootTag?: ?RootTag,
|
|
64
|
-
):
|
|
67
|
+
): Promise<boolean> {
|
|
65
68
|
if (NativeImageLoaderIOS.prefetchImageWithMetadata) {
|
|
66
69
|
// number params like rootTag cannot be nullable before TurboModules is available
|
|
67
70
|
return NativeImageLoaderIOS.prefetchImageWithMetadata(
|
|
68
71
|
url,
|
|
69
72
|
queryRootName,
|
|
70
73
|
// NOTE: RootTag type
|
|
71
|
-
|
|
72
|
-
rootTag ? rootTag : 0,
|
|
74
|
+
rootTag != null ? rootTag : createRootTag(0),
|
|
73
75
|
);
|
|
74
76
|
} else {
|
|
75
77
|
return NativeImageLoaderIOS.prefetchImage(url);
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
|
|
79
|
-
function prefetch(url: string):
|
|
81
|
+
function prefetch(url: string): Promise<boolean> {
|
|
80
82
|
return NativeImageLoaderIOS.prefetchImage(url);
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
async function queryCache(
|
|
84
86
|
urls: Array<string>,
|
|
85
87
|
): Promise<{[string]: 'memory' | 'disk' | 'disk/memory', ...}> {
|
|
86
|
-
return
|
|
88
|
+
return NativeImageLoaderIOS.queryCache(urls);
|
|
87
89
|
}
|
|
88
90
|
|
|
89
|
-
export type ImageComponentStatics = $ReadOnly<{|
|
|
90
|
-
getSize: typeof getSize,
|
|
91
|
-
getSizeWithHeaders: typeof getSizeWithHeaders,
|
|
92
|
-
prefetch: typeof prefetch,
|
|
93
|
-
prefetchWithMetadata: typeof prefetchWithMetadata,
|
|
94
|
-
abortPrefetch?: number => void,
|
|
95
|
-
queryCache: typeof queryCache,
|
|
96
|
-
resolveAssetSource: typeof resolveAssetSource,
|
|
97
|
-
|}>;
|
|
98
|
-
|
|
99
91
|
/**
|
|
100
92
|
* A React component for displaying different types of images,
|
|
101
93
|
* including network images, static resources, temporary local images, and
|
|
@@ -103,9 +95,7 @@ export type ImageComponentStatics = $ReadOnly<{|
|
|
|
103
95
|
*
|
|
104
96
|
* See https://reactnative.dev/docs/image
|
|
105
97
|
*/
|
|
106
|
-
|
|
107
|
-
* LTI update could not be added via codemod */
|
|
108
|
-
const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
98
|
+
let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => {
|
|
109
99
|
const source = getImageSourcesFromImageProps(props) || {
|
|
110
100
|
uri: undefined,
|
|
111
101
|
width: undefined,
|
|
@@ -113,16 +103,23 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
113
103
|
};
|
|
114
104
|
|
|
115
105
|
let sources;
|
|
116
|
-
let style:
|
|
106
|
+
let style: ImageStyle;
|
|
107
|
+
|
|
117
108
|
if (Array.isArray(source)) {
|
|
118
|
-
|
|
119
|
-
|
|
109
|
+
style =
|
|
110
|
+
flattenStyle<ImageStyleProp>([styles.base, props.style]) ||
|
|
111
|
+
({}: ImageStyle);
|
|
120
112
|
sources = source;
|
|
121
113
|
} else {
|
|
122
|
-
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
style =
|
|
114
|
+
const {uri} = source;
|
|
115
|
+
const width = source.width ?? props.width;
|
|
116
|
+
const height = source.height ?? props.height;
|
|
117
|
+
style =
|
|
118
|
+
flattenStyle<ImageStyleProp>([
|
|
119
|
+
{width, height},
|
|
120
|
+
styles.base,
|
|
121
|
+
props.style,
|
|
122
|
+
]) || ({}: ImageStyle);
|
|
126
123
|
sources = [source];
|
|
127
124
|
|
|
128
125
|
if (uri === '') {
|
|
@@ -131,16 +128,12 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
131
128
|
}
|
|
132
129
|
|
|
133
130
|
const objectFit =
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
? // $FlowFixMe[incompatible-call]
|
|
137
|
-
convertObjectFitToResizeMode(style.objectFit)
|
|
131
|
+
style.objectFit != null
|
|
132
|
+
? convertObjectFitToResizeMode(style.objectFit)
|
|
138
133
|
: null;
|
|
139
134
|
const resizeMode =
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
// $FlowFixMe[prop-missing]
|
|
143
|
-
const tintColor = props.tintColor || style.tintColor;
|
|
135
|
+
objectFit || props.resizeMode || style.resizeMode || 'cover';
|
|
136
|
+
const tintColor = props.tintColor ?? style.tintColor;
|
|
144
137
|
|
|
145
138
|
if (props.children != null) {
|
|
146
139
|
throw new Error(
|
|
@@ -168,6 +161,8 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
168
161
|
};
|
|
169
162
|
const accessibilityLabel = props['aria-label'] ?? props.accessibilityLabel;
|
|
170
163
|
|
|
164
|
+
const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
|
|
165
|
+
|
|
171
166
|
return (
|
|
172
167
|
<ImageAnalyticsTagContext.Consumer>
|
|
173
168
|
{analyticTag => {
|
|
@@ -177,9 +172,8 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
177
172
|
{...restProps}
|
|
178
173
|
accessible={props.alt !== undefined ? true : props.accessible}
|
|
179
174
|
accessibilityLabel={accessibilityLabel ?? props.alt}
|
|
180
|
-
ref={
|
|
175
|
+
ref={actualRef}
|
|
181
176
|
style={style}
|
|
182
|
-
// $FlowFixMe[incompatible-type]
|
|
183
177
|
resizeMode={resizeMode}
|
|
184
178
|
tintColor={tintColor}
|
|
185
179
|
source={sources}
|
|
@@ -189,18 +183,16 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
189
183
|
}}
|
|
190
184
|
</ImageAnalyticsTagContext.Consumer>
|
|
191
185
|
);
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
const ImageForwardRef = React.forwardRef<
|
|
195
|
-
ImagePropsType,
|
|
196
|
-
React.ElementRef<typeof ImageViewNativeComponent>,
|
|
197
|
-
>(BaseImage);
|
|
186
|
+
});
|
|
198
187
|
|
|
199
|
-
|
|
200
|
-
if (
|
|
201
|
-
|
|
188
|
+
const imageComponentDecorator = unstable_getImageComponentDecorator();
|
|
189
|
+
if (imageComponentDecorator != null) {
|
|
190
|
+
BaseImage = imageComponentDecorator(BaseImage);
|
|
202
191
|
}
|
|
203
192
|
|
|
193
|
+
// $FlowExpectedError[incompatible-type] Eventually we need to move these functions from statics of the component to exports in the module.
|
|
194
|
+
const Image: ImageIOS = BaseImage;
|
|
195
|
+
|
|
204
196
|
Image.displayName = 'Image';
|
|
205
197
|
|
|
206
198
|
/**
|
|
@@ -208,9 +200,7 @@ Image.displayName = 'Image';
|
|
|
208
200
|
*
|
|
209
201
|
* See https://reactnative.dev/docs/image#getsize
|
|
210
202
|
*/
|
|
211
|
-
|
|
212
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
213
|
-
* delete this comment and run Flow. */
|
|
203
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
214
204
|
Image.getSize = getSize;
|
|
215
205
|
|
|
216
206
|
/**
|
|
@@ -219,9 +209,7 @@ Image.getSize = getSize;
|
|
|
219
209
|
*
|
|
220
210
|
* See https://reactnative.dev/docs/image#getsizewithheaders
|
|
221
211
|
*/
|
|
222
|
-
|
|
223
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
224
|
-
* delete this comment and run Flow. */
|
|
212
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
225
213
|
Image.getSizeWithHeaders = getSizeWithHeaders;
|
|
226
214
|
|
|
227
215
|
/**
|
|
@@ -230,9 +218,7 @@ Image.getSizeWithHeaders = getSizeWithHeaders;
|
|
|
230
218
|
*
|
|
231
219
|
* See https://reactnative.dev/docs/image#prefetch
|
|
232
220
|
*/
|
|
233
|
-
|
|
234
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
235
|
-
* delete this comment and run Flow. */
|
|
221
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
236
222
|
Image.prefetch = prefetch;
|
|
237
223
|
|
|
238
224
|
/**
|
|
@@ -241,9 +227,7 @@ Image.prefetch = prefetch;
|
|
|
241
227
|
*
|
|
242
228
|
* See https://reactnative.dev/docs/image#prefetch
|
|
243
229
|
*/
|
|
244
|
-
|
|
245
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
246
|
-
* delete this comment and run Flow. */
|
|
230
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
247
231
|
Image.prefetchWithMetadata = prefetchWithMetadata;
|
|
248
232
|
|
|
249
233
|
/**
|
|
@@ -251,9 +235,7 @@ Image.prefetchWithMetadata = prefetchWithMetadata;
|
|
|
251
235
|
*
|
|
252
236
|
* See https://reactnative.dev/docs/image#querycache
|
|
253
237
|
*/
|
|
254
|
-
|
|
255
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
256
|
-
* delete this comment and run Flow. */
|
|
238
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
257
239
|
Image.queryCache = queryCache;
|
|
258
240
|
|
|
259
241
|
/**
|
|
@@ -261,21 +243,13 @@ Image.queryCache = queryCache;
|
|
|
261
243
|
*
|
|
262
244
|
* See https://reactnative.dev/docs/image#resolveassetsource
|
|
263
245
|
*/
|
|
264
|
-
|
|
265
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
266
|
-
* delete this comment and run Flow. */
|
|
246
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
267
247
|
Image.resolveAssetSource = resolveAssetSource;
|
|
268
248
|
|
|
269
|
-
/**
|
|
270
|
-
* Switch to `deprecated-react-native-prop-types` for compatibility with future
|
|
271
|
-
* releases. This is deprecated and will be removed in the future.
|
|
272
|
-
*/
|
|
273
|
-
Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
|
|
274
|
-
|
|
275
249
|
const styles = StyleSheet.create({
|
|
276
250
|
base: {
|
|
277
251
|
overflow: 'hidden',
|
|
278
252
|
},
|
|
279
253
|
});
|
|
280
254
|
|
|
281
|
-
module.exports =
|
|
255
|
+
module.exports = Image;
|
|
@@ -4,24 +4,28 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @flow
|
|
7
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import type {RootTag} from '../Types/RootTagTypes';
|
|
12
|
-
import type {ImageIOS} from './
|
|
12
|
+
import type {AbstractImageIOS, ImageIOS} from './ImageTypes.flow';
|
|
13
13
|
import TextAncestor from '../Text/TextAncestor'; // [Windows]
|
|
14
14
|
import invariant from 'invariant'; // [Windows]
|
|
15
15
|
|
|
16
16
|
import type {ImageProps as ImagePropsType} from './ImageProps';
|
|
17
17
|
|
|
18
|
-
import type {ImageStyleProp} from '../StyleSheet/StyleSheet';
|
|
18
|
+
import type {ImageStyle, ImageStyleProp} from '../StyleSheet/StyleSheet';
|
|
19
19
|
import NativeImageLoaderWin32 from './NativeImageLoaderWin32'; // [Win32] Replace iOS
|
|
20
20
|
|
|
21
|
+
import {createRootTag} from '../ReactNative/RootTag';
|
|
21
22
|
import flattenStyle from '../StyleSheet/flattenStyle';
|
|
22
23
|
import StyleSheet from '../StyleSheet/StyleSheet';
|
|
23
24
|
import ImageAnalyticsTagContext from './ImageAnalyticsTagContext';
|
|
24
|
-
import
|
|
25
|
+
import {
|
|
26
|
+
unstable_getImageComponentDecorator,
|
|
27
|
+
useWrapRefWithImageAttachedCallbacks,
|
|
28
|
+
} from './ImageInjection';
|
|
25
29
|
import {getImageSourcesFromImageProps} from './ImageSourceUtils';
|
|
26
30
|
import {convertObjectFitToResizeMode} from './ImageUtils';
|
|
27
31
|
import ImageViewNativeComponent from './ImageViewNativeComponent';
|
|
@@ -31,6 +35,7 @@ import * as React from 'react';
|
|
|
31
35
|
function getSize(
|
|
32
36
|
uri: string,
|
|
33
37
|
success: (width: number, height: number) => void,
|
|
38
|
+
// $FlowFixMe[unclear-type]
|
|
34
39
|
failure?: (error: any) => void,
|
|
35
40
|
) {
|
|
36
41
|
//[Win32
|
|
@@ -48,6 +53,7 @@ function getSize(
|
|
|
48
53
|
NativeImageLoaderWin32.getSize(
|
|
49
54
|
uri,
|
|
50
55
|
(width: number, height: number, err?: string) => {
|
|
56
|
+
// $FlowFixMe[sketchy-null-string]
|
|
51
57
|
if (!err) {
|
|
52
58
|
success(width, height);
|
|
53
59
|
} else {
|
|
@@ -66,7 +72,8 @@ function getSizeWithHeaders(
|
|
|
66
72
|
uri: string,
|
|
67
73
|
headers: {[string]: string, ...},
|
|
68
74
|
success: (width: number, height: number) => void,
|
|
69
|
-
failure?: (error:
|
|
75
|
+
failure?: (error: mixed) => void,
|
|
76
|
+
// $FlowFixMe[unclear-type]
|
|
70
77
|
): any {
|
|
71
78
|
return NativeImageLoaderWin32.getSizeWithHeaders(uri, headers)
|
|
72
79
|
.then(function (sizes) {
|
|
@@ -84,41 +91,30 @@ function prefetchWithMetadata(
|
|
|
84
91
|
url: string,
|
|
85
92
|
queryRootName: string,
|
|
86
93
|
rootTag?: ?RootTag,
|
|
87
|
-
):
|
|
94
|
+
): Promise<boolean> {
|
|
88
95
|
if (NativeImageLoaderWin32.prefetchImageWithMetadata) {
|
|
89
96
|
// number params like rootTag cannot be nullable before TurboModules is available
|
|
90
97
|
return NativeImageLoaderWin32.prefetchImageWithMetadata(
|
|
91
98
|
url,
|
|
92
99
|
queryRootName,
|
|
93
100
|
// NOTE: RootTag type
|
|
94
|
-
|
|
95
|
-
rootTag ? rootTag : 0,
|
|
101
|
+
rootTag != null ? rootTag : createRootTag(0),
|
|
96
102
|
);
|
|
97
103
|
} else {
|
|
98
104
|
return NativeImageLoaderWin32.prefetchImage(url);
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
107
|
|
|
102
|
-
function prefetch(url: string):
|
|
108
|
+
function prefetch(url: string): Promise<boolean> {
|
|
103
109
|
return NativeImageLoaderWin32.prefetchImage(url);
|
|
104
110
|
}
|
|
105
111
|
|
|
106
112
|
async function queryCache(
|
|
107
113
|
urls: Array<string>,
|
|
108
114
|
): Promise<{[string]: 'memory' | 'disk' | 'disk/memory', ...}> {
|
|
109
|
-
return
|
|
115
|
+
return NativeImageLoaderWin32.queryCache(urls);
|
|
110
116
|
}
|
|
111
117
|
|
|
112
|
-
export type ImageComponentStatics = $ReadOnly<{|
|
|
113
|
-
getSize: typeof getSize,
|
|
114
|
-
getSizeWithHeaders: typeof getSizeWithHeaders,
|
|
115
|
-
prefetch: typeof prefetch,
|
|
116
|
-
prefetchWithMetadata: typeof prefetchWithMetadata,
|
|
117
|
-
abortPrefetch?: number => void,
|
|
118
|
-
queryCache: typeof queryCache,
|
|
119
|
-
resolveAssetSource: typeof resolveAssetSource,
|
|
120
|
-
|}>;
|
|
121
|
-
|
|
122
118
|
/**
|
|
123
119
|
* A React component for displaying different types of images,
|
|
124
120
|
* including network images, static resources, temporary local images, and
|
|
@@ -126,9 +122,7 @@ export type ImageComponentStatics = $ReadOnly<{|
|
|
|
126
122
|
*
|
|
127
123
|
* See https://reactnative.dev/docs/image
|
|
128
124
|
*/
|
|
129
|
-
|
|
130
|
-
* LTI update could not be added via codemod */
|
|
131
|
-
const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
125
|
+
let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => {
|
|
132
126
|
const source = getImageSourcesFromImageProps(props) || {
|
|
133
127
|
uri: undefined,
|
|
134
128
|
width: undefined,
|
|
@@ -136,16 +130,23 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
136
130
|
};
|
|
137
131
|
|
|
138
132
|
let sources;
|
|
139
|
-
let style:
|
|
133
|
+
let style: ImageStyle;
|
|
134
|
+
|
|
140
135
|
if (Array.isArray(source)) {
|
|
141
|
-
|
|
142
|
-
|
|
136
|
+
style =
|
|
137
|
+
flattenStyle<ImageStyleProp>([styles.base, props.style]) ||
|
|
138
|
+
({}: ImageStyle);
|
|
143
139
|
sources = source;
|
|
144
140
|
} else {
|
|
145
|
-
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
style =
|
|
141
|
+
const {uri} = source;
|
|
142
|
+
const width = source.width ?? props.width;
|
|
143
|
+
const height = source.height ?? props.height;
|
|
144
|
+
style =
|
|
145
|
+
flattenStyle<ImageStyleProp>([
|
|
146
|
+
{width, height},
|
|
147
|
+
styles.base,
|
|
148
|
+
props.style,
|
|
149
|
+
]) || ({}: ImageStyle);
|
|
149
150
|
sources = [source];
|
|
150
151
|
|
|
151
152
|
if (uri === '') {
|
|
@@ -154,16 +155,12 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
const objectFit =
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
? // $FlowFixMe[incompatible-call]
|
|
160
|
-
convertObjectFitToResizeMode(style.objectFit)
|
|
158
|
+
style.objectFit != null
|
|
159
|
+
? convertObjectFitToResizeMode(style.objectFit)
|
|
161
160
|
: null;
|
|
162
161
|
const resizeMode =
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
// $FlowFixMe[prop-missing]
|
|
166
|
-
const tintColor = props.tintColor || style.tintColor;
|
|
162
|
+
objectFit || props.resizeMode || style.resizeMode || 'cover';
|
|
163
|
+
const tintColor = props.tintColor ?? style.tintColor;
|
|
167
164
|
|
|
168
165
|
if (props.children != null) {
|
|
169
166
|
throw new Error(
|
|
@@ -196,6 +193,8 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
196
193
|
};
|
|
197
194
|
const accessibilityLabel = props['aria-label'] ?? props.accessibilityLabel;
|
|
198
195
|
|
|
196
|
+
const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
|
|
197
|
+
|
|
199
198
|
return (
|
|
200
199
|
// [Win32
|
|
201
200
|
<TextAncestor.Consumer>
|
|
@@ -215,9 +214,8 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
215
214
|
{...restProps}
|
|
216
215
|
accessible={props.alt !== undefined ? true : props.accessible}
|
|
217
216
|
accessibilityLabel={accessibilityLabel ?? props.alt}
|
|
218
|
-
ref={
|
|
217
|
+
ref={actualRef}
|
|
219
218
|
style={style}
|
|
220
|
-
// $FlowFixMe[incompatible-type]
|
|
221
219
|
resizeMode={resizeMode}
|
|
222
220
|
tintColor={tintColor}
|
|
223
221
|
source={sources}
|
|
@@ -230,18 +228,16 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
230
228
|
}}
|
|
231
229
|
</TextAncestor.Consumer>
|
|
232
230
|
);
|
|
233
|
-
};
|
|
234
|
-
|
|
235
|
-
const ImageForwardRef = React.forwardRef<
|
|
236
|
-
ImagePropsType,
|
|
237
|
-
React.ElementRef<typeof ImageViewNativeComponent>,
|
|
238
|
-
>(BaseImage);
|
|
231
|
+
});
|
|
239
232
|
|
|
240
|
-
|
|
241
|
-
if (
|
|
242
|
-
|
|
233
|
+
const imageComponentDecorator = unstable_getImageComponentDecorator();
|
|
234
|
+
if (imageComponentDecorator != null) {
|
|
235
|
+
BaseImage = imageComponentDecorator(BaseImage);
|
|
243
236
|
}
|
|
244
237
|
|
|
238
|
+
// $FlowExpectedError[incompatible-type] Eventually we need to move these functions from statics of the component to exports in the module.
|
|
239
|
+
const Image: ImageIOS = BaseImage;
|
|
240
|
+
|
|
245
241
|
Image.displayName = 'Image';
|
|
246
242
|
|
|
247
243
|
/**
|
|
@@ -249,9 +245,7 @@ Image.displayName = 'Image';
|
|
|
249
245
|
*
|
|
250
246
|
* See https://reactnative.dev/docs/image#getsize
|
|
251
247
|
*/
|
|
252
|
-
|
|
253
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
254
|
-
* delete this comment and run Flow. */
|
|
248
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
255
249
|
Image.getSize = getSize;
|
|
256
250
|
|
|
257
251
|
/**
|
|
@@ -260,9 +254,7 @@ Image.getSize = getSize;
|
|
|
260
254
|
*
|
|
261
255
|
* See https://reactnative.dev/docs/image#getsizewithheaders
|
|
262
256
|
*/
|
|
263
|
-
|
|
264
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
265
|
-
* delete this comment and run Flow. */
|
|
257
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
266
258
|
Image.getSizeWithHeaders = getSizeWithHeaders;
|
|
267
259
|
|
|
268
260
|
/**
|
|
@@ -271,9 +263,7 @@ Image.getSizeWithHeaders = getSizeWithHeaders;
|
|
|
271
263
|
*
|
|
272
264
|
* See https://reactnative.dev/docs/image#prefetch
|
|
273
265
|
*/
|
|
274
|
-
|
|
275
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
276
|
-
* delete this comment and run Flow. */
|
|
266
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
277
267
|
Image.prefetch = prefetch;
|
|
278
268
|
|
|
279
269
|
/**
|
|
@@ -282,9 +272,7 @@ Image.prefetch = prefetch;
|
|
|
282
272
|
*
|
|
283
273
|
* See https://reactnative.dev/docs/image#prefetch
|
|
284
274
|
*/
|
|
285
|
-
|
|
286
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
287
|
-
* delete this comment and run Flow. */
|
|
275
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
288
276
|
Image.prefetchWithMetadata = prefetchWithMetadata;
|
|
289
277
|
|
|
290
278
|
/**
|
|
@@ -292,9 +280,7 @@ Image.prefetchWithMetadata = prefetchWithMetadata;
|
|
|
292
280
|
*
|
|
293
281
|
* See https://reactnative.dev/docs/image#querycache
|
|
294
282
|
*/
|
|
295
|
-
|
|
296
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
297
|
-
* delete this comment and run Flow. */
|
|
283
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
298
284
|
Image.queryCache = queryCache;
|
|
299
285
|
|
|
300
286
|
/**
|
|
@@ -302,21 +288,13 @@ Image.queryCache = queryCache;
|
|
|
302
288
|
*
|
|
303
289
|
* See https://reactnative.dev/docs/image#resolveassetsource
|
|
304
290
|
*/
|
|
305
|
-
|
|
306
|
-
* suppresses an error found when Flow v0.89 was deployed. To see the error,
|
|
307
|
-
* delete this comment and run Flow. */
|
|
291
|
+
// $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
|
|
308
292
|
Image.resolveAssetSource = resolveAssetSource;
|
|
309
293
|
|
|
310
|
-
/**
|
|
311
|
-
* Switch to `deprecated-react-native-prop-types` for compatibility with future
|
|
312
|
-
* releases. This is deprecated and will be removed in the future.
|
|
313
|
-
*/
|
|
314
|
-
Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
|
|
315
|
-
|
|
316
294
|
const styles = StyleSheet.create({
|
|
317
295
|
base: {
|
|
318
296
|
overflow: 'hidden',
|
|
319
297
|
},
|
|
320
298
|
});
|
|
321
299
|
|
|
322
|
-
module.exports =
|
|
300
|
+
module.exports = Image;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @flow
|
|
7
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
@@ -45,7 +45,7 @@ import * as React from 'react';
|
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
47
|
class ImageBackground extends React.Component<ImageBackgroundProps> {
|
|
48
|
-
setNativeProps(props:
|
|
48
|
+
setNativeProps(props: {...}) {
|
|
49
49
|
// Work-around flow
|
|
50
50
|
const viewRef = this._viewRef;
|
|
51
51
|
if (viewRef) {
|