@@ -195,39 +195,61 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &
195195 dispatch_async (dispatch_get_main_queue (), ^{
196196 [self ->slider setThumbImage: image];
197197 });
198+ }
199+ failureBlock: ^{
200+ [self ->slider setThumbImage: nil ];
198201 }];
199202 }
200203 if (oldScreenProps.trackImage != newScreenProps.trackImage ) {
201204 [self loadImageFromImageSource: newScreenProps.trackImage completionBlock: ^(NSError *error, UIImage *image) {
202205 dispatch_async (dispatch_get_main_queue (), ^{
203206 [self ->slider setTrackImage: image];
204207 });
208+ }
209+ failureBlock: ^{
210+ [self ->slider setTrackImage: nil ];
205211 }];
206212 }
207213 if (oldScreenProps.minimumTrackImage != newScreenProps.minimumTrackImage ) {
208214 [self loadImageFromImageSource: newScreenProps.minimumTrackImage completionBlock: ^(NSError *error, UIImage *image) {
209215 dispatch_async (dispatch_get_main_queue (), ^{
210216 [self ->slider setMinimumTrackImage: image];
211217 });
218+ }
219+ failureBlock: ^{
220+ [self ->slider setMinimumTrackImage: nil ];
212221 }];
213222 }
214223 if (oldScreenProps.maximumTrackImage != newScreenProps.maximumTrackImage ) {
215224 [self loadImageFromImageSource: newScreenProps.maximumTrackImage completionBlock: ^(NSError *error, UIImage *image) {
216225 dispatch_async (dispatch_get_main_queue (), ^{
217226 [self ->slider setMaximumTrackImage: image];
218227 });
228+ }
229+ failureBlock: ^{
230+ [self ->slider setMaximumTrackImage: nil ];
219231 }];
220232 }
221233 [super updateProps: props oldProps: oldProps];
222234}
223235
224236
225237// TODO temporarily using bridge, workaround for https://github.com/reactwg/react-native-new-architecture/discussions/31#discussioncomment-2717047, rewrite when Meta comes with a solution.
226- - (void )loadImageFromImageSource : (ImageSource)source completionBlock : (RNCLoadImageCompletionBlock)completionBlock
238+ - (void )loadImageFromImageSource : (ImageSource)source completionBlock : (RNCLoadImageCompletionBlock)completionBlock failureBlock : (RNCLoadImageFailureBlock) failureBlock
227239{
228240 NSString *uri = [[NSString alloc ] initWithUTF8String: source.uri.c_str ()];
229241 if ((BOOL )uri.length ) {
230- [[[RCTBridge currentBridge ] moduleForName: @" ImageLoader" ] loadImageWithURLRequest: NSURLRequestFromImageSource(source) size: CGSizeMake (source.size.width, source.size.height) scale: source.scale clipped: NO resizeMode: RCTResizeModeCover progressBlock: nil partialLoadBlock: nil completionBlock: completionBlock];
242+ [[[RCTBridge currentBridge ] moduleForName: @" ImageLoader" ]
243+ loadImageWithURLRequest: NSURLRequestFromImageSource(source)
244+ size: CGSizeMake (source.size.width, source.size.height)
245+ scale: source.scale
246+ clipped: NO
247+ resizeMode: RCTResizeModeCover
248+ progressBlock: nil
249+ partialLoadBlock: nil
250+ completionBlock: completionBlock];
251+ } else {
252+ failureBlock ();
231253 }
232254}
233255
0 commit comments