diff --git a/Libraries/Image/Image.android.js b/Libraries/Image/Image.android.js
index 2bd3dce70ef..2dd43e4dfb7 100644
--- a/Libraries/Image/Image.android.js
+++ b/Libraries/Image/Image.android.js
@@ -198,13 +198,22 @@ let Image = (props: ImagePropsType, forwardedRef) => {
: nativeProps;
return (
- {hasTextAncestor =>
- hasTextAncestor ? (
-
- ) : (
-
- )
- }
+ {hasTextAncestor => {
+ if (hasTextAncestor) {
+ let src = Array.isArray(sources) ? sources : [sources];
+ return (
+
+ );
+ }
+
+ return ;
+ }}
);
}}
diff --git a/Libraries/Image/ImageViewNativeComponent.js b/Libraries/Image/ImageViewNativeComponent.js
index f908019fefa..d0e02068270 100644
--- a/Libraries/Image/ImageViewNativeComponent.js
+++ b/Libraries/Image/ImageViewNativeComponent.js
@@ -32,7 +32,7 @@ type Props = $ReadOnly<{
// Android native props
shouldNotifyLoadEvents?: boolean,
src?: ?ResolvedAssetSource | $ReadOnlyArray<{uri: string, ...}>,
- headers?: ?string,
+ headers?: ?{[string]: string},
defaultSrc?: ?string,
loadingIndicatorSrc?: ?string,
}>;
diff --git a/Libraries/Image/TextInlineImageNativeComponent.js b/Libraries/Image/TextInlineImageNativeComponent.js
index 7ea25343fdd..b3b14037689 100644
--- a/Libraries/Image/TextInlineImageNativeComponent.js
+++ b/Libraries/Image/TextInlineImageNativeComponent.js
@@ -10,90 +10,32 @@
'use strict';
-import type {ResolvedAssetSource} from './AssetSourceResolver';
import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
-import type {ImageProps} from './ImageProps';
import type {ViewProps} from '../Components/View/ViewPropTypes';
+import type {ImageResizeMode} from './ImageResizeMode';
import * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';
-import type {
- ColorValue,
- DangerouslyImpreciseStyle,
- ImageStyleProp,
-} from '../StyleSheet/StyleSheet';
+import type {ColorValue} from '../StyleSheet/StyleSheet';
-type Props = $ReadOnly<{
- ...ImageProps,
+type NativeProps = $ReadOnly<{
...ViewProps,
-
- style?: ImageStyleProp | DangerouslyImpreciseStyle,
-
- // iOS native props
- tintColor?: ColorValue,
-
- // Android native props
- shouldNotifyLoadEvents?: boolean,
- src?: ?ResolvedAssetSource | $ReadOnlyArray<{uri: string, ...}>,
- headers?: ?string,
- defaultSrc?: ?string,
- loadingIndicatorSrc?: ?string,
- internal_analyticTag?: ?string,
+ resizeMode?: ?ImageResizeMode,
+ src?: ?$ReadOnlyArray$ReadOnly<{uri: string, ...}>>,
+ tintColor?: ?ColorValue,
+ headers?: ?{[string]: string},
}>;
-const TextInlineImage: HostComponent =
- NativeComponentRegistry.get('RCTTextInlineImage', () => ({
+const TextInlineImage: HostComponent =
+ NativeComponentRegistry.get('RCTTextInlineImage', () => ({
uiViewClassName: 'RCTTextInlineImage',
bubblingEventTypes: {},
- directEventTypes: {
- topLoadStart: {
- registrationName: 'onLoadStart',
- },
- topProgress: {
- registrationName: 'onProgress',
- },
- topError: {
- registrationName: 'onError',
- },
- topPartialLoad: {
- registrationName: 'onPartialLoad',
- },
- topLoad: {
- registrationName: 'onLoad',
- },
- topLoadEnd: {
- registrationName: 'onLoadEnd',
- },
- },
+ directEventTypes: {},
validAttributes: {
- blurRadius: true,
- capInsets: {
- diff: require('../Utilities/differ/insetsDiffer'),
- },
- defaultSource: {
- process: require('./resolveAssetSource'),
- },
- defaultSrc: true,
- fadeDuration: true,
- headers: true,
- internal_analyticTag: true,
- loadingIndicatorSrc: true,
- onError: true,
- onLoad: true,
- onLoadEnd: true,
- onLoadStart: true,
- onPartialLoad: true,
- onProgress: true,
- overlayColor: {
- process: require('../StyleSheet/processColor'),
- },
- progressiveRenderingEnabled: true,
- resizeMethod: true,
resizeMode: true,
- shouldNotifyLoadEvents: true,
- source: true,
src: true,
tintColor: {
process: require('../StyleSheet/processColor'),
},
+ headers: true,
},
}));
diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.java
index 801e0b0703d..65d83c2a536 100644
--- a/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.java
+++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.java
@@ -73,7 +73,7 @@ public class FrescoBasedReactTextInlineImageShadowNode extends ReactTextInlineIm
mHeaders = headers;
}
- @ReactProp(name = "tintColor")
+ @ReactProp(name = "tintColor", customType = "Color")
public void setTintColor(int tintColor) {
mTintColor = tintColor;
}
diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java
index 67898c7f7e3..9e0cc7998c4 100644
--- a/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java
+++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java
@@ -12,8 +12,8 @@ import androidx.annotation.Nullable;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.controller.AbstractDraweeControllerBuilder;
import com.facebook.react.module.annotations.ReactModule;
+import com.facebook.react.uimanager.BaseViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
-import com.facebook.react.uimanager.ViewManager;
/**
* Manages Images embedded in Text nodes using Fresco. Since they are used only as a virtual nodes
@@ -21,7 +21,7 @@ import com.facebook.react.uimanager.ViewManager;
*/
@ReactModule(name = FrescoBasedReactTextInlineImageViewManager.REACT_CLASS)
public class FrescoBasedReactTextInlineImageViewManager
- extends ViewManager {
+ extends BaseViewManager {
public static final String REACT_CLASS = "RCTTextInlineImage";