From ac9d76b91c719f21bb0083fb38afc541a722f8f9 Mon Sep 17 00:00:00 2001 From: Mathieu Acthernoene Date: Thu, 2 Jul 2026 14:37:25 +0200 Subject: [PATCH] Deprecate ImageBackground --- .../react-native/Libraries/Image/ImageBackground.js | 4 ++++ packages/react-native/Libraries/Image/ImageProps.js | 8 +++++++- packages/react-native/index.js | 11 +++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/react-native/Libraries/Image/ImageBackground.js b/packages/react-native/Libraries/Image/ImageBackground.js index c8e0beae02df..15e2243d98f2 100644 --- a/packages/react-native/Libraries/Image/ImageBackground.js +++ b/packages/react-native/Libraries/Image/ImageBackground.js @@ -47,7 +47,11 @@ export type {ImageBackgroundProps} from './ImageProps'; * }); * ``` * + * ImageBackground is deprecated and will be removed in a future release. + * Use a `View` with an absolutely positioned `Image` instead. + * * @see https://reactnative.dev/docs/imagebackground + * @deprecated */ class ImageBackground extends React.Component { setNativeProps(props: {...}) { diff --git a/packages/react-native/Libraries/Image/ImageProps.js b/packages/react-native/Libraries/Image/ImageProps.js index a893ac450a60..631ba635bec4 100644 --- a/packages/react-native/Libraries/Image/ImageProps.js +++ b/packages/react-native/Libraries/Image/ImageProps.js @@ -338,7 +338,13 @@ export type ImageProps = Readonly<{ style?: ?ImageStyleProp, }>; -/** @build-types emit-as-interface Uniwind compatibility */ +/** + * ImageBackground is deprecated and will be removed in a future release. + * Use a `View` with an absolutely positioned `Image` instead. + * @see https://reactnative.dev/docs/imagebackground + * @deprecated + * @build-types emit-as-interface Uniwind compatibility + */ export type ImageBackgroundProps = Readonly<{ ...ImageProps, children?: React.Node, diff --git a/packages/react-native/index.js b/packages/react-native/index.js index 533c97f038fa..c2873961a5f0 100644 --- a/packages/react-native/index.js +++ b/packages/react-native/index.js @@ -62,7 +62,18 @@ module.exports = { get Image() { return require('./Libraries/Image/Image').default; }, + /** + * @deprecated ImageBackground is deprecated and will be removed in a future release. + * Use a View with an absolutely positioned Image instead. + * See https://reactnative.dev/docs/imagebackground + */ get ImageBackground() { + warnOnce( + 'image-background-deprecated', + 'ImageBackground is deprecated and will be removed in a future release. ' + + 'Use a View with an absolutely positioned Image instead. ' + + 'See https://reactnative.dev/docs/imagebackground', + ); return require('./Libraries/Image/ImageBackground').default; }, get InputAccessoryView() {