From abeee154d5151d90f54f649004ca9fb9bc4bc0c6 Mon Sep 17 00:00:00 2001 From: Dmitry Rykun Date: Tue, 19 Nov 2024 11:21:22 -0800 Subject: [PATCH] Unify defaultSource and defaultSrc ImageProp (#47710) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/47710 There is Android code that supports remapping `defaultSrc` -> `defaultSource` for `ImageNativeComponent`. The docs reference this prop as `defaultSource`: https://reactnative.dev/docs/next/image#defaultsource It is not referenced as `defaultSrc` anywhere. Let's unify it as `defaultSource` across both platforms. Changelog: [Internal] Reviewed By: javache Differential Revision: D65819218 fbshipit-source-id: 0f468e2327ad07285a45e4c9f5e33d74da411c74 --- packages/react-native/Libraries/Image/Image.android.js | 2 -- .../react-native/Libraries/Image/ImageViewNativeComponent.js | 4 +++- .../java/com/facebook/react/views/image/ReactImageManager.kt | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/react-native/Libraries/Image/Image.android.js b/packages/react-native/Libraries/Image/Image.android.js index 998270b1cfc..08fbe9d1fac 100644 --- a/packages/react-native/Libraries/Image/Image.android.js +++ b/packages/react-native/Libraries/Image/Image.android.js @@ -133,7 +133,6 @@ let BaseImage: AbstractImageAndroid = React.forwardRef( width: undefined, height: undefined, }; - const defaultSource = resolveAssetSource(props.defaultSource); const loadingIndicatorSource = resolveAssetSource( props.loadingIndicatorSource, ); @@ -179,7 +178,6 @@ let BaseImage: AbstractImageAndroid = React.forwardRef( /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found * when making Flow check .android.js files. */ headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}), - defaultSrc: defaultSource ? defaultSource.uri : null, loadingIndicatorSrc: loadingIndicatorSource ? loadingIndicatorSource.uri : null, diff --git a/packages/react-native/Libraries/Image/ImageViewNativeComponent.js b/packages/react-native/Libraries/Image/ImageViewNativeComponent.js index 69680c4f3dd..22ac430c219 100644 --- a/packages/react-native/Libraries/Image/ImageViewNativeComponent.js +++ b/packages/react-native/Libraries/Image/ImageViewNativeComponent.js @@ -82,6 +82,9 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = }, validAttributes: { blurRadius: true, + defaultSource: { + process: require('./resolveAssetSource'), + }, internal_analyticTag: true, resizeMethod: true, resizeMode: true, @@ -100,7 +103,6 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = borderRadius: true, headers: true, shouldNotifyLoadEvents: true, - defaultSrc: true, overlayColor: { process: require('../StyleSheet/processColor').default, }, diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.kt index 77e1d986655..63942f03f6e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.kt @@ -124,8 +124,7 @@ public constructor( } } - // In JS this is Image.props.defaultSource - @ReactProp(name = "defaultSrc") + @ReactProp(name = "defaultSource") public fun setDefaultSource(view: ReactImageView, source: String?) { view.setDefaultSource(source) }