From c65f4d25427b9f9f284a57cf099b9ac1eabf2ddc Mon Sep 17 00:00:00 2001 From: CHANDRAMOHANNEGI Date: Sun, 16 Aug 2026 11:20:21 +0530 Subject: [PATCH] fix(iOS): reuse prefetched images --- .../react-native/Libraries/Image/RCTImageLoader.mm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/react-native/Libraries/Image/RCTImageLoader.mm b/packages/react-native/Libraries/Image/RCTImageLoader.mm index 39cf942fe09..089f32ae619 100644 --- a/packages/react-native/Libraries/Image/RCTImageLoader.mm +++ b/packages/react-native/Libraries/Image/RCTImageLoader.mm @@ -666,6 +666,14 @@ - (RCTImageURLLoaderRequest *)_loadImageOrDataWithURLRequest:(NSURLRequest *)req size:size scale:scale resizeMode:resizeMode]; + if (!image) { + // Prefetched images are cached at their original size. Reuse that + // entry for subsequent requests, which may specify a concrete size. + image = [[strongSelf imageCache] imageForUrl:request.URL.absoluteString + size:CGSizeZero + scale:1 + resizeMode:RCTResizeModeStretch]; + } } if (image) { @@ -1133,6 +1141,11 @@ - (NSDictionary *)getImageCacheStatus:(NSArray *)requests } else { results[urlRequest.URL.absoluteString] = @"disk/memory"; } + } else if ([[self imageCache] imageForUrl:urlRequest.URL.absoluteString + size:CGSizeZero + scale:1 + resizeMode:RCTResizeModeStretch]) { + results[urlRequest.URL.absoluteString] = @"memory"; } } }