mirror of
https://github.com/status-im/react-native-fast-image.git
synced 2026-08-31 05:41:16 +00:00
52 lines
1.8 KiB
Objective-C
52 lines
1.8 KiB
Objective-C
#import "FFFastImageViewManager.h"
|
|
#import "FFFastImageView.h"
|
|
|
|
#import <SDWebImage/SDImageCache.h>
|
|
#import <SDWebImage/SDWebImagePrefetcher.h>
|
|
|
|
@implementation FFFastImageViewManager
|
|
|
|
RCT_EXPORT_MODULE(FastImageView)
|
|
|
|
- (FFFastImageView*)view {
|
|
return [[FFFastImageView alloc] init];
|
|
}
|
|
|
|
RCT_EXPORT_VIEW_PROPERTY(source, FFFastImageSource)
|
|
RCT_EXPORT_VIEW_PROPERTY(resizeMode, RCTResizeMode)
|
|
RCT_EXPORT_VIEW_PROPERTY(onFastImageLoadStart, RCTDirectEventBlock)
|
|
RCT_EXPORT_VIEW_PROPERTY(onFastImageProgress, RCTDirectEventBlock)
|
|
RCT_EXPORT_VIEW_PROPERTY(onFastImageError, RCTDirectEventBlock)
|
|
RCT_EXPORT_VIEW_PROPERTY(onFastImageLoad, RCTDirectEventBlock)
|
|
RCT_EXPORT_VIEW_PROPERTY(onFastImageLoadEnd, RCTDirectEventBlock)
|
|
RCT_REMAP_VIEW_PROPERTY(tintColor, imageColor, UIColor)
|
|
|
|
RCT_EXPORT_METHOD(preload:(nonnull NSArray<FFFastImageSource *> *)sources)
|
|
{
|
|
NSMutableArray *urls = [NSMutableArray arrayWithCapacity:sources.count];
|
|
|
|
[sources enumerateObjectsUsingBlock:^(FFFastImageSource * _Nonnull source, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
[source.headers enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString* header, BOOL *stop) {
|
|
[[SDWebImageDownloader sharedDownloader] setValue:header forHTTPHeaderField:key];
|
|
}];
|
|
[urls setObject:source.url atIndexedSubscript:idx];
|
|
}];
|
|
|
|
[[SDWebImagePrefetcher sharedImagePrefetcher] prefetchURLs:urls];
|
|
}
|
|
|
|
RCT_EXPORT_METHOD(clearMemoryCache:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
{
|
|
[SDImageCache.sharedImageCache clearMemory];
|
|
resolve(NULL);
|
|
}
|
|
|
|
RCT_EXPORT_METHOD(clearDiskCache:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
{
|
|
[SDImageCache.sharedImageCache clearDiskOnCompletion:^(){
|
|
resolve(NULL);
|
|
}];
|
|
}
|
|
|
|
@end
|