@office-iss/react-native-win32 0.84.0-preview.2 → 0.85.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 -0
- package/.flowconfig +1 -5
- package/CHANGELOG.json +79 -13
- package/CHANGELOG.md +14 -8
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/TimersTest.js +1 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
- package/Libraries/Animated/Animated.d.ts +8 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -4
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/animations/Animation.js +3 -3
- package/Libraries/Animated/animations/DecayAnimation.js +4 -4
- package/Libraries/Animated/animations/SpringAnimation.js +5 -5
- package/Libraries/Animated/animations/TimingAnimation.js +5 -5
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
- package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
- package/Libraries/Animated/useAnimatedColor.js +25 -0
- package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
- package/Libraries/Animated/useAnimatedValueXY.js +26 -0
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +3 -3
- package/Libraries/BatchedBridge/NativeModules.js +12 -10
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +34 -30
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/Button.win32.js +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
- package/Libraries/Components/EnterString.win32.js +2 -2
- package/Libraries/Components/EnterString.win32.js.map +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +6 -6
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.win32.js +3 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
- package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
- package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
- package/Libraries/Components/ScrollView/ScrollView.js +19 -9
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +8 -8
- package/Libraries/Components/Switch/Switch.js +3 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
- package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +23 -22
- package/Libraries/Components/TextInput/TextInput.js +8 -4
- package/Libraries/Components/TextInput/TextInput.win32.js +3 -4
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/Touchable.win32.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
- package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +7 -7
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
- package/Libraries/Components/Touchable/TouchableWin32.js +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
- package/Libraries/Components/View/ViewAccessibility.js +7 -7
- package/Libraries/Components/View/ViewAccessibility.win32.js +7 -7
- package/Libraries/Components/View/ViewPropTypes.js +14 -14
- package/Libraries/Components/View/ViewPropTypes.win32.js +16 -16
- package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ExtendedError.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +3 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +4 -2
- package/Libraries/Core/setUpReactDevTools.js +23 -6
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlay.js +2 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +1 -1
- package/Libraries/Image/Image.android.js +172 -306
- package/Libraries/Image/ImageProps.js +9 -11
- package/Libraries/Image/ImageSource.js +2 -2
- package/Libraries/Image/ImageSourceUtils.js +8 -4
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/ImageViewNativeComponent.js +7 -16
- package/Libraries/Image/nativeImageSource.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +5 -4
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +3 -3
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +38 -24
- package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
- package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
- package/Libraries/LogBox/LogBox.js +42 -19
- package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
- package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +15 -16
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +11 -13
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +3 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
- package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +16 -16
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/Pressability/Pressability.js +5 -5
- package/Libraries/Pressability/Pressability.win32.js +5 -5
- package/Libraries/Pressability/PressabilityDebug.js +1 -1
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/Pressability/usePressability.js +3 -14
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +18 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +4 -4
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
- package/Libraries/Renderer/shims/ReactFabric.js +1 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
- package/Libraries/Renderer/shims/ReactNative.js +3 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
- package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
- package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
- package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
- package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
- package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
- package/Libraries/StyleSheet/processBoxShadow.js +44 -4
- package/Libraries/StyleSheet/processColorArray.js +2 -2
- package/Libraries/StyleSheet/processFilter.js +2 -2
- package/Libraries/Text/Text.js +295 -627
- package/Libraries/Text/Text.win32.js +360 -744
- package/Libraries/Text/TextNativeComponent.js +14 -7
- package/Libraries/Text/TextNativeComponent.win32.js +14 -7
- package/Libraries/Text/TextProps.js +4 -4
- package/Libraries/Text/TextProps.win32.js +4 -4
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +21 -21
- package/Libraries/Types/CoreEventTypes.win32.js +22 -21
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/HMRClient.js +32 -5
- package/Libraries/Utilities/IPerformanceLogger.js +4 -4
- package/Libraries/Utilities/codegenNativeCommands.js +4 -4
- package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
- package/Libraries/Utilities/codegenNativeComponent.js +2 -2
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -3
- package/Libraries/Utilities/useMergeRefs.js +2 -2
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +16 -20
- package/flow/bom.js.flow +18 -17
- package/flow/dom.js.flow +12 -5
- package/flow/global.js +1 -1
- package/index.js +9 -0
- package/index.win32.js +9 -0
- package/index.win32.js.flow +8 -1
- package/jest/RefreshControlMock.js +2 -2
- package/jest/assetFileTransformer.js +8 -3
- package/jest/mockComponent.js +3 -4
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mocks/ActivityIndicator.js +2 -2
- package/jest/mocks/Image.js +2 -2
- package/jest/mocks/Modal.js +2 -2
- package/jest/mocks/RefreshControl.js +3 -3
- package/jest/mocks/RendererProxy.js +2 -2
- package/jest/mocks/ScrollView.js +5 -5
- package/jest/mocks/Text.js +2 -2
- package/jest/mocks/TextInput.js +2 -2
- package/jest/mocks/View.js +2 -2
- package/jest/mocks/ViewNativeComponent.js +1 -1
- package/jest/mocks/requireNativeComponent.js +1 -1
- package/jest/mocks/useColorScheme.js +1 -1
- package/jest/setup.js +68 -31
- package/overrides.json +30 -36
- package/package.json +20 -17
- package/src/private/animated/NativeAnimatedHelper.js +2 -2
- package/src/private/animated/NativeAnimatedHelper.win32.js +2 -2
- package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
- package/src/private/components/virtualview/VirtualView.js +14 -21
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
- package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
- package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/utilities/toError.js +27 -0
- package/src/private/utilities/toExtendedError.js +30 -0
- package/src/private/webapis/dom/events/Event.js +1 -1
- package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
- package/src/private/webapis/dom/events/EventTarget.js +3 -3
- package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
- package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
- package/src/private/webapis/performance/LongTasks.js +3 -3
- package/src/private/webapis/performance/Performance.js +4 -4
- package/src/private/webapis/performance/PerformanceEntry.js +1 -1
- package/src/private/webapis/performance/PerformanceObserver.js +2 -2
- package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
- package/src/private/webapis/structuredClone/structuredClone.js +2 -2
- package/src/types/globals.d.ts +4 -4
- package/src-win/Libraries/Components/EnterString.win32.tsx +2 -2
- package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +14 -14
- package/src-win/index.win32.js.flow +8 -1
- package/types/index.d.ts +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +0 -94
- package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
|
@@ -18,7 +18,6 @@ import type {AbstractImageAndroid, ImageAndroid} from './ImageTypes.flow';
|
|
|
18
18
|
import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
19
19
|
import flattenStyle from '../StyleSheet/flattenStyle';
|
|
20
20
|
import StyleSheet from '../StyleSheet/StyleSheet';
|
|
21
|
-
import TextAncestorContext from '../Text/TextAncestorContext';
|
|
22
21
|
import ImageAnalyticsTagContext from './ImageAnalyticsTagContext';
|
|
23
22
|
import {
|
|
24
23
|
unstable_getImageComponentDecorator,
|
|
@@ -31,7 +30,6 @@ import NativeImageLoaderAndroid, {
|
|
|
31
30
|
type ImageSize,
|
|
32
31
|
} from './NativeImageLoaderAndroid';
|
|
33
32
|
import resolveAssetSource from './resolveAssetSource';
|
|
34
|
-
import TextInlineImageNativeComponent from './TextInlineImageNativeComponent';
|
|
35
33
|
import * as React from 'react';
|
|
36
34
|
import {use} from 'react';
|
|
37
35
|
|
|
@@ -137,336 +135,204 @@ const EMPTY_IMAGE_SOURCE = {
|
|
|
137
135
|
*
|
|
138
136
|
* See https://reactnative.dev/docs/image
|
|
139
137
|
*/
|
|
140
|
-
let
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
);
|
|
195
|
-
}
|
|
138
|
+
let BaseImage: AbstractImageAndroid = ({
|
|
139
|
+
ref: forwardedRef,
|
|
140
|
+
alt,
|
|
141
|
+
accessible,
|
|
142
|
+
'aria-labelledby': ariaLabelledBy,
|
|
143
|
+
'aria-busy': ariaBusy,
|
|
144
|
+
'aria-checked': ariaChecked,
|
|
145
|
+
'aria-disabled': ariaDisabled,
|
|
146
|
+
'aria-expanded': ariaExpanded,
|
|
147
|
+
'aria-hidden': ariaHidden,
|
|
148
|
+
'aria-label': ariaLabel,
|
|
149
|
+
'aria-selected': ariaSelected,
|
|
150
|
+
accessibilityLabel,
|
|
151
|
+
accessibilityLabelledBy,
|
|
152
|
+
accessibilityState,
|
|
153
|
+
defaultSource,
|
|
154
|
+
loadingIndicatorSource,
|
|
155
|
+
children,
|
|
156
|
+
source,
|
|
157
|
+
src,
|
|
158
|
+
style,
|
|
159
|
+
crossOrigin,
|
|
160
|
+
referrerPolicy,
|
|
161
|
+
srcSet,
|
|
162
|
+
onLoadStart,
|
|
163
|
+
onLoad,
|
|
164
|
+
onLoadEnd,
|
|
165
|
+
onError,
|
|
166
|
+
width,
|
|
167
|
+
height,
|
|
168
|
+
resizeMode,
|
|
169
|
+
...restProps
|
|
170
|
+
}: {
|
|
171
|
+
ref?: React.RefSetter<HostInstance>,
|
|
172
|
+
...ImageProps,
|
|
173
|
+
}) => {
|
|
174
|
+
let source_ =
|
|
175
|
+
getImageSourcesFromImageProps({
|
|
176
|
+
crossOrigin,
|
|
177
|
+
referrerPolicy,
|
|
178
|
+
src,
|
|
179
|
+
srcSet,
|
|
180
|
+
width,
|
|
181
|
+
height,
|
|
182
|
+
source,
|
|
183
|
+
}) || EMPTY_IMAGE_SOURCE;
|
|
184
|
+
const defaultSource_ = resolveAssetSource(defaultSource);
|
|
185
|
+
const loadingIndicatorSource_ = resolveAssetSource(loadingIndicatorSource);
|
|
186
|
+
|
|
187
|
+
if (children != null) {
|
|
188
|
+
throw new Error(
|
|
189
|
+
'The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.',
|
|
190
|
+
);
|
|
191
|
+
}
|
|
196
192
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
193
|
+
if (defaultSource != null && loadingIndicatorSource != null) {
|
|
194
|
+
throw new Error(
|
|
195
|
+
'The <Image> component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',
|
|
196
|
+
);
|
|
197
|
+
}
|
|
202
198
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
199
|
+
let style_: ImageStyleProp;
|
|
200
|
+
let sources_;
|
|
201
|
+
let headers_: ?ImageSourceHeaders;
|
|
202
|
+
if (Array.isArray(source_)) {
|
|
203
|
+
const {
|
|
204
|
+
headers: sourceHeaders,
|
|
205
|
+
width: sourceWidth,
|
|
206
|
+
height: sourceHeight,
|
|
207
|
+
} = source_[0];
|
|
208
|
+
headers_ = sourceHeaders;
|
|
209
|
+
// Default to the first source's width and height if only one is provided
|
|
210
|
+
if (ReactNativeFeatureFlags.fixImageSrcDimensionPropagation()) {
|
|
211
|
+
style_ = [
|
|
212
|
+
source_.length === 1 && {width: sourceWidth, height: sourceHeight},
|
|
213
|
+
styles.base,
|
|
214
|
+
style,
|
|
215
|
+
];
|
|
210
216
|
} else {
|
|
211
|
-
|
|
212
|
-
if (uri === '') {
|
|
213
|
-
console.warn('source.uri should not be an empty string');
|
|
214
|
-
}
|
|
215
|
-
const width_ = source_.width ?? width;
|
|
216
|
-
const height_ = source_.height ?? height;
|
|
217
|
-
style_ = [{width: width_, height: height_}, styles.base, style];
|
|
218
|
-
sources_ = [source_];
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
const nativeProps = restProps as {
|
|
222
|
-
...React.PropsOf<ImageViewNativeComponent>,
|
|
223
|
-
};
|
|
224
|
-
|
|
225
|
-
// Both iOS and C++ sides expect to have "source" prop, whereas on Android it's "src"
|
|
226
|
-
// (for historical reasons). So in the latter case we populate both "src" and "source",
|
|
227
|
-
// in order to have a better alignment between platforms in the future.
|
|
228
|
-
// TODO: `src` should be eventually removed from the API on Android.
|
|
229
|
-
nativeProps.src = sources_;
|
|
230
|
-
nativeProps.source = sources_;
|
|
231
|
-
|
|
232
|
-
nativeProps.style = style_;
|
|
233
|
-
|
|
234
|
-
if (headers_ != null) {
|
|
235
|
-
nativeProps.headers = headers_;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
if (onLoadStart != null) {
|
|
239
|
-
nativeProps.shouldNotifyLoadEvents = true;
|
|
240
|
-
nativeProps.onLoadStart = onLoadStart;
|
|
217
|
+
style_ = [styles.base, style];
|
|
241
218
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
219
|
+
sources_ = source_;
|
|
220
|
+
} else {
|
|
221
|
+
const {uri, width: sourceWidth, height: sourceHeight} = source_;
|
|
222
|
+
if (uri === '') {
|
|
223
|
+
console.warn('source.uri should not be an empty string');
|
|
246
224
|
}
|
|
225
|
+
style_ = [
|
|
226
|
+
{width: sourceWidth ?? width, height: sourceHeight ?? height},
|
|
227
|
+
styles.base,
|
|
228
|
+
style,
|
|
229
|
+
];
|
|
230
|
+
sources_ = [source_];
|
|
231
|
+
}
|
|
247
232
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
}
|
|
233
|
+
const nativeProps = restProps as {
|
|
234
|
+
...React.PropsOf<ImageViewNativeComponent>,
|
|
235
|
+
};
|
|
252
236
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
237
|
+
// Both iOS and C++ sides expect to have "source" prop, whereas on Android it's "src"
|
|
238
|
+
// (for historical reasons). So in the latter case we populate both "src" and "source",
|
|
239
|
+
// in order to have a better alignment between platforms in the future.
|
|
240
|
+
// TODO: `src` should be eventually removed from the API on Android.
|
|
241
|
+
nativeProps.src = sources_;
|
|
242
|
+
nativeProps.source = sources_;
|
|
257
243
|
|
|
258
|
-
|
|
259
|
-
nativeProps.defaultSource = defaultSource_.uri;
|
|
260
|
-
}
|
|
244
|
+
nativeProps.style = style_;
|
|
261
245
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
) {
|
|
266
|
-
nativeProps.loadingIndicatorSrc = loadingIndicatorSource_.uri;
|
|
267
|
-
}
|
|
246
|
+
if (headers_ != null) {
|
|
247
|
+
nativeProps.headers = headers_;
|
|
248
|
+
}
|
|
268
249
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
} else if (alt != null) {
|
|
274
|
-
nativeProps.accessibilityLabel = alt;
|
|
275
|
-
}
|
|
250
|
+
if (onLoadStart != null) {
|
|
251
|
+
nativeProps.shouldNotifyLoadEvents = true;
|
|
252
|
+
nativeProps.onLoadStart = onLoadStart;
|
|
253
|
+
}
|
|
276
254
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
}
|
|
255
|
+
if (onLoad != null) {
|
|
256
|
+
nativeProps.shouldNotifyLoadEvents = true;
|
|
257
|
+
nativeProps.onLoad = onLoad;
|
|
258
|
+
}
|
|
282
259
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
}
|
|
260
|
+
if (onLoadEnd != null) {
|
|
261
|
+
nativeProps.shouldNotifyLoadEvents = true;
|
|
262
|
+
nativeProps.onLoadEnd = onLoadEnd;
|
|
263
|
+
}
|
|
288
264
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
ariaDisabled != null ||
|
|
294
|
-
ariaExpanded != null ||
|
|
295
|
-
ariaSelected != null
|
|
296
|
-
) {
|
|
297
|
-
nativeProps.accessibilityState = {
|
|
298
|
-
busy: ariaBusy ?? accessibilityState?.busy,
|
|
299
|
-
checked: ariaChecked ?? accessibilityState?.checked,
|
|
300
|
-
disabled: ariaDisabled ?? accessibilityState?.disabled,
|
|
301
|
-
expanded: ariaExpanded ?? accessibilityState?.expanded,
|
|
302
|
-
selected: ariaSelected ?? accessibilityState?.selected,
|
|
303
|
-
};
|
|
304
|
-
}
|
|
265
|
+
if (onError != null) {
|
|
266
|
+
nativeProps.shouldNotifyLoadEvents = true;
|
|
267
|
+
nativeProps.onError = onError;
|
|
268
|
+
}
|
|
305
269
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
270
|
+
if (defaultSource_ != null && defaultSource_.uri != null) {
|
|
271
|
+
nativeProps.defaultSource = defaultSource_.uri;
|
|
272
|
+
}
|
|
309
273
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
objectFit_ || resizeMode || flattenedStyle_?.resizeMode || 'cover';
|
|
314
|
-
nativeProps.resizeMode = resizeMode_;
|
|
274
|
+
if (loadingIndicatorSource_ != null && loadingIndicatorSource_.uri != null) {
|
|
275
|
+
nativeProps.loadingIndicatorSrc = loadingIndicatorSource_.uri;
|
|
276
|
+
}
|
|
315
277
|
|
|
316
|
-
|
|
278
|
+
if (ariaLabel != null) {
|
|
279
|
+
nativeProps.accessibilityLabel = ariaLabel;
|
|
280
|
+
} else if (accessibilityLabel != null) {
|
|
281
|
+
nativeProps.accessibilityLabel = accessibilityLabel;
|
|
282
|
+
} else if (alt != null) {
|
|
283
|
+
nativeProps.accessibilityLabel = alt;
|
|
284
|
+
}
|
|
317
285
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
286
|
+
if (ariaLabelledBy != null) {
|
|
287
|
+
nativeProps.accessibilityLabelledBy = ariaLabelledBy;
|
|
288
|
+
} else if (accessibilityLabelledBy != null) {
|
|
289
|
+
nativeProps.accessibilityLabelledBy = accessibilityLabelledBy;
|
|
290
|
+
}
|
|
323
291
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
headers={headers_}
|
|
330
|
-
src={sources_}
|
|
331
|
-
ref={actualRef}
|
|
332
|
-
/>
|
|
333
|
-
) : (
|
|
334
|
-
<ImageViewNativeComponent {...nativeProps} ref={actualRef} />
|
|
335
|
-
);
|
|
336
|
-
};
|
|
292
|
+
if (alt != null) {
|
|
293
|
+
nativeProps.accessible = true;
|
|
294
|
+
} else if (accessible != null) {
|
|
295
|
+
nativeProps.accessible = accessible;
|
|
296
|
+
}
|
|
337
297
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
298
|
+
if (
|
|
299
|
+
accessibilityState != null ||
|
|
300
|
+
ariaBusy != null ||
|
|
301
|
+
ariaChecked != null ||
|
|
302
|
+
ariaDisabled != null ||
|
|
303
|
+
ariaExpanded != null ||
|
|
304
|
+
ariaSelected != null
|
|
305
|
+
) {
|
|
306
|
+
nativeProps.accessibilityState = {
|
|
307
|
+
busy: ariaBusy ?? accessibilityState?.busy,
|
|
308
|
+
checked: ariaChecked ?? accessibilityState?.checked,
|
|
309
|
+
disabled: ariaDisabled ?? accessibilityState?.disabled,
|
|
310
|
+
expanded: ariaExpanded ?? accessibilityState?.expanded,
|
|
311
|
+
selected: ariaSelected ?? accessibilityState?.selected,
|
|
351
312
|
};
|
|
352
|
-
|
|
353
|
-
const loadingIndicatorSource = resolveAssetSource(
|
|
354
|
-
props.loadingIndicatorSource,
|
|
355
|
-
);
|
|
313
|
+
}
|
|
356
314
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
);
|
|
361
|
-
}
|
|
315
|
+
if (ariaHidden === true) {
|
|
316
|
+
nativeProps.importantForAccessibility = 'no-hide-descendants';
|
|
317
|
+
}
|
|
362
318
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
319
|
+
const flattenedStyle_ = flattenStyle<ImageStyleProp>(style);
|
|
320
|
+
const objectFit_ = convertObjectFitToResizeMode(flattenedStyle_?.objectFit);
|
|
321
|
+
const resizeMode_ =
|
|
322
|
+
objectFit_ || resizeMode || flattenedStyle_?.resizeMode || 'cover';
|
|
323
|
+
nativeProps.resizeMode = resizeMode_;
|
|
368
324
|
|
|
369
|
-
|
|
370
|
-
let sources;
|
|
371
|
-
if (Array.isArray(source)) {
|
|
372
|
-
style = [styles.base, props.style];
|
|
373
|
-
sources = source;
|
|
374
|
-
} else {
|
|
375
|
-
const {uri} = source;
|
|
376
|
-
if (uri === '') {
|
|
377
|
-
console.warn('source.uri should not be an empty string');
|
|
378
|
-
}
|
|
379
|
-
const width = source.width ?? props.width;
|
|
380
|
-
const height = source.height ?? props.height;
|
|
381
|
-
style = [{width, height}, styles.base, props.style];
|
|
382
|
-
sources = [source];
|
|
383
|
-
}
|
|
325
|
+
const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
|
|
384
326
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
shouldNotifyLoadEvents: !!(onLoadStart || onLoad || onLoadEnd || onError),
|
|
390
|
-
// Both iOS and C++ sides expect to have "source" prop, whereas on Android it's "src"
|
|
391
|
-
// (for historical reasons). So in the latter case we populate both "src" and "source",
|
|
392
|
-
// in order to have a better alignment between platforms in the future.
|
|
393
|
-
src: sources,
|
|
394
|
-
source: sources,
|
|
395
|
-
/* $FlowFixMe[prop-missing](>=0.78.0 site=react_native_android_fb) This issue was found
|
|
396
|
-
* when making Flow check .android.js files. */
|
|
397
|
-
headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}),
|
|
398
|
-
defaultSource: defaultSource ? defaultSource.uri : null,
|
|
399
|
-
loadingIndicatorSrc: loadingIndicatorSource
|
|
400
|
-
? loadingIndicatorSource.uri
|
|
401
|
-
: null,
|
|
402
|
-
accessibilityLabel:
|
|
403
|
-
props['aria-label'] ?? props.accessibilityLabel ?? props.alt,
|
|
404
|
-
accessibilityLabelledBy:
|
|
405
|
-
props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy,
|
|
406
|
-
accessible: props.alt !== undefined ? true : props.accessible,
|
|
407
|
-
accessibilityState: {
|
|
408
|
-
busy: props['aria-busy'] ?? props.accessibilityState?.busy,
|
|
409
|
-
checked: props['aria-checked'] ?? props.accessibilityState?.checked,
|
|
410
|
-
disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
|
|
411
|
-
expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
|
|
412
|
-
selected: props['aria-selected'] ?? props.accessibilityState?.selected,
|
|
413
|
-
},
|
|
414
|
-
importantForAccessibility:
|
|
415
|
-
props['aria-hidden'] === true
|
|
416
|
-
? ('no-hide-descendants' as const)
|
|
417
|
-
: props.importantForAccessibility,
|
|
418
|
-
};
|
|
327
|
+
const analyticTag = use(ImageAnalyticsTagContext);
|
|
328
|
+
if (analyticTag !== null) {
|
|
329
|
+
nativeProps.internal_analyticTag = analyticTag;
|
|
330
|
+
}
|
|
419
331
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
const resizeMode =
|
|
423
|
-
objectFit || props.resizeMode || flattenedStyle?.resizeMode || 'cover';
|
|
424
|
-
|
|
425
|
-
const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
|
|
426
|
-
|
|
427
|
-
return (
|
|
428
|
-
<ImageAnalyticsTagContext.Consumer>
|
|
429
|
-
{analyticTag => {
|
|
430
|
-
const nativePropsWithAnalytics =
|
|
431
|
-
analyticTag !== null
|
|
432
|
-
? {
|
|
433
|
-
...nativeProps,
|
|
434
|
-
internal_analyticTag: analyticTag,
|
|
435
|
-
}
|
|
436
|
-
: nativeProps;
|
|
437
|
-
return (
|
|
438
|
-
<TextAncestorContext.Consumer>
|
|
439
|
-
{hasTextAncestor => {
|
|
440
|
-
if (hasTextAncestor) {
|
|
441
|
-
return (
|
|
442
|
-
<TextInlineImageNativeComponent
|
|
443
|
-
// $FlowFixMe[incompatible-type]
|
|
444
|
-
style={style}
|
|
445
|
-
resizeMode={resizeMode}
|
|
446
|
-
headers={nativeProps.headers}
|
|
447
|
-
src={sources}
|
|
448
|
-
ref={actualRef}
|
|
449
|
-
/>
|
|
450
|
-
);
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
return (
|
|
454
|
-
<ImageViewNativeComponent
|
|
455
|
-
{...nativePropsWithAnalytics}
|
|
456
|
-
resizeMode={resizeMode}
|
|
457
|
-
ref={actualRef}
|
|
458
|
-
/>
|
|
459
|
-
);
|
|
460
|
-
}}
|
|
461
|
-
</TextAncestorContext.Consumer>
|
|
462
|
-
);
|
|
463
|
-
}}
|
|
464
|
-
</ImageAnalyticsTagContext.Consumer>
|
|
465
|
-
);
|
|
466
|
-
};
|
|
332
|
+
return <ImageViewNativeComponent {...nativeProps} ref={actualRef} />;
|
|
333
|
+
};
|
|
467
334
|
|
|
468
|
-
|
|
469
|
-
}
|
|
335
|
+
let _BaseImage = BaseImage;
|
|
470
336
|
|
|
471
337
|
const imageComponentDecorator = unstable_getImageComponentDecorator();
|
|
472
338
|
if (imageComponentDecorator != null) {
|
|
@@ -38,7 +38,7 @@ type ImageProgressEventDataIOS = {
|
|
|
38
38
|
* @see ImagePropsIOS.onProgress
|
|
39
39
|
*/
|
|
40
40
|
export type ImageProgressEventIOS = NativeSyntheticEvent<
|
|
41
|
-
|
|
41
|
+
Readonly<ImageProgressEventDataIOS>,
|
|
42
42
|
>;
|
|
43
43
|
|
|
44
44
|
type ImageErrorEventData = {
|
|
@@ -46,7 +46,7 @@ type ImageErrorEventData = {
|
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
export type ImageErrorEvent = NativeSyntheticEvent<
|
|
49
|
-
|
|
49
|
+
Readonly<ImageErrorEventData>,
|
|
50
50
|
>;
|
|
51
51
|
|
|
52
52
|
type ImageLoadEventData = {
|
|
@@ -57,11 +57,9 @@ type ImageLoadEventData = {
|
|
|
57
57
|
},
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
export type ImageLoadEvent = NativeSyntheticEvent<
|
|
61
|
-
$ReadOnly<ImageLoadEventData>,
|
|
62
|
-
>;
|
|
60
|
+
export type ImageLoadEvent = NativeSyntheticEvent<Readonly<ImageLoadEventData>>;
|
|
63
61
|
|
|
64
|
-
export type ImagePropsIOS =
|
|
62
|
+
export type ImagePropsIOS = Readonly<{
|
|
65
63
|
/**
|
|
66
64
|
* A static image to display while loading the image source.
|
|
67
65
|
*
|
|
@@ -82,13 +80,13 @@ export type ImagePropsIOS = $ReadOnly<{
|
|
|
82
80
|
onProgress?: ?(event: ImageProgressEventIOS) => void,
|
|
83
81
|
}>;
|
|
84
82
|
|
|
85
|
-
export type ImagePropsAndroid =
|
|
83
|
+
export type ImagePropsAndroid = Readonly<{
|
|
86
84
|
/**
|
|
87
85
|
* similarly to `source`, this property represents the resource used to render
|
|
88
86
|
* the loading indicator for the image, displayed until image is ready to be
|
|
89
87
|
* displayed, typically after when it got downloaded from network.
|
|
90
88
|
*/
|
|
91
|
-
loadingIndicatorSource?: ?(number |
|
|
89
|
+
loadingIndicatorSource?: ?(number | Readonly<ImageURISource>),
|
|
92
90
|
progressiveRenderingEnabled?: ?boolean,
|
|
93
91
|
fadeDuration?: ?number,
|
|
94
92
|
|
|
@@ -127,7 +125,7 @@ export type ImagePropsAndroid = $ReadOnly<{
|
|
|
127
125
|
resizeMultiplier?: ?number,
|
|
128
126
|
}>;
|
|
129
127
|
|
|
130
|
-
export type ImagePropsBase =
|
|
128
|
+
export type ImagePropsBase = Readonly<{
|
|
131
129
|
...Omit<ViewProps, 'style'>,
|
|
132
130
|
/**
|
|
133
131
|
* When true, indicates the image is an accessibility element.
|
|
@@ -333,7 +331,7 @@ export type ImagePropsBase = $ReadOnly<{
|
|
|
333
331
|
children?: empty,
|
|
334
332
|
}>;
|
|
335
333
|
|
|
336
|
-
export type ImageProps =
|
|
334
|
+
export type ImageProps = Readonly<{
|
|
337
335
|
...ImagePropsIOS,
|
|
338
336
|
...ImagePropsAndroid,
|
|
339
337
|
...ImagePropsBase,
|
|
@@ -344,7 +342,7 @@ export type ImageProps = $ReadOnly<{
|
|
|
344
342
|
style?: ?ImageStyleProp,
|
|
345
343
|
}>;
|
|
346
344
|
|
|
347
|
-
export type ImageBackgroundProps =
|
|
345
|
+
export type ImageBackgroundProps = Readonly<{
|
|
348
346
|
...ImageProps,
|
|
349
347
|
children?: React.Node,
|
|
350
348
|
|
|
@@ -87,7 +87,7 @@ export type ImageRequireSource = number;
|
|
|
87
87
|
export type ImageSource =
|
|
88
88
|
| ImageRequireSource
|
|
89
89
|
| ImageURISource
|
|
90
|
-
|
|
|
90
|
+
| ReadonlyArray<ImageURISource>;
|
|
91
91
|
|
|
92
92
|
type ImageSourceProperties = {
|
|
93
93
|
body?: ?string,
|
|
@@ -104,7 +104,7 @@ type ImageSourceProperties = {
|
|
|
104
104
|
|
|
105
105
|
export function getImageSourceProperties(
|
|
106
106
|
imageSource: ImageURISource,
|
|
107
|
-
):
|
|
107
|
+
): Readonly<ImageSourceProperties> {
|
|
108
108
|
const object: ImageSourceProperties = {};
|
|
109
109
|
if (imageSource.body != null) {
|
|
110
110
|
object.body = imageSource.body;
|
|
@@ -23,11 +23,15 @@ export type ImageSourceHeaders = {
|
|
|
23
23
|
* A function which returns the appropriate value for image source
|
|
24
24
|
* by resolving the `source`, `src` and `srcSet` props.
|
|
25
25
|
*/
|
|
26
|
-
export function getImageSourcesFromImageProps(
|
|
27
|
-
imageProps: ImageProps,
|
|
28
|
-
):
|
|
26
|
+
export function getImageSourcesFromImageProps(imageProps: ImageProps):
|
|
29
27
|
| ?ResolvedAssetSource
|
|
30
|
-
|
|
|
28
|
+
| ReadonlyArray<{
|
|
29
|
+
+uri: string,
|
|
30
|
+
+headers: ImageSourceHeaders,
|
|
31
|
+
+width: ?number,
|
|
32
|
+
+height: ?number,
|
|
33
|
+
...
|
|
34
|
+
}> {
|
|
31
35
|
let source = resolveAssetSource(imageProps.source);
|
|
32
36
|
|
|
33
37
|
let sources;
|
|
@@ -23,7 +23,7 @@ export type ImageSize = {
|
|
|
23
23
|
|
|
24
24
|
export type ImageResolvedAssetSource = ResolvedAssetSource;
|
|
25
25
|
|
|
26
|
-
type ImageComponentStaticsIOS =
|
|
26
|
+
type ImageComponentStaticsIOS = Readonly<{
|
|
27
27
|
getSize(uri: string): Promise<ImageSize>,
|
|
28
28
|
getSize(
|
|
29
29
|
uri: string,
|
|
@@ -60,7 +60,7 @@ type ImageComponentStaticsIOS = $ReadOnly<{
|
|
|
60
60
|
resolveAssetSource(source: ImageSource): ?ImageResolvedAssetSource,
|
|
61
61
|
}>;
|
|
62
62
|
|
|
63
|
-
type ImageComponentStaticsAndroid =
|
|
63
|
+
type ImageComponentStaticsAndroid = Readonly<{
|
|
64
64
|
...ImageComponentStaticsIOS,
|
|
65
65
|
abortPrefetch(requestId: number): void,
|
|
66
66
|
}>;
|