1// Copyright 2019-present 650 Industries. All rights reserved. 2 3#import <EXImageLoader/EXImageLoader.h> 4#import <React/RCTImageLoaderProtocol.h> 5#import <ExpoModulesCore/EXUtilities.h> 6 7@interface EXImageLoader () 8 9@property (weak, nonatomic) RCTBridge *bridge; 10 11@end 12 13@implementation EXImageLoader 14 15EX_REGISTER_MODULE(); 16 17+ (NSString *)moduleName 18{ 19 return @"EXImageLoader"; 20} 21 22+ (const NSArray<Protocol *> *)exportedInterfaces 23{ 24 return @[@protocol(EXImageLoaderInterface)]; 25} 26 27- (void)setBridge:(RCTBridge *)bridge 28{ 29 _bridge = bridge; 30} 31 32- (void)loadImageForURL:(NSURL *)imageURL 33 completionHandler:(EXImageLoaderCompletionBlock)completionHandler 34{ 35 [[_bridge moduleForName:@"ImageLoader" lazilyLoadIfNecessary:YES] loadImageWithURLRequest:[NSURLRequest requestWithURL:imageURL] 36 callback:^(NSError *error, UIImage *loadedImage) { 37 completionHandler(error, loadedImage); 38 }]; 39} 40 41@end 42