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