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