Skip to content

Commit

Permalink
feat: add prefetch
Browse files Browse the repository at this point in the history
  • Loading branch information
gtokman committed Sep 13, 2024
1 parent 14e0422 commit 7af9890
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
2 changes: 2 additions & 0 deletions ios/FasterImageViewManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ @interface RCT_EXTERN_MODULE(FasterImageViewManager, RCTViewManager)

RCT_EXTERN_METHOD(clearCache:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(prefetch:(NSArray) sources resolve:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)

@end
12 changes: 12 additions & 0 deletions ios/FasterImageViewManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,18 @@ final class FasterImageViewManager: RCTViewManager {
}
}
}

@objc
func prefetch(_ sources: [String],
resolve: @escaping RCTPromiseResolveBlock,
reject: @escaping RCTPromiseRejectBlock) {
do {
let prefetcher = ImagePrefetcher()
let urls = sources.map { url in URL(string: url )}.compactMap{ $0 }
prefetcher.startPrefetching(with: urls)
resolve(true)
} catch { reject() }
}
}

struct ImageOptions: Decodable {
Expand Down
14 changes: 12 additions & 2 deletions src/index.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import {
ColorValue,
ImageStyle,
requireNativeComponent,
NativeModules,
Platform,
ColorValue,
requireNativeComponent,
} from 'react-native';

export type IOSImageResizeMode =
Expand Down Expand Up @@ -130,3 +130,13 @@ export const clearCache = async () => {
return FasterImageModule.clearCache();
}
};

export const prefetch(sources: string[]): Promise<void> {
if (Platform.OS === 'ios') {
const { FasterImageViewManager } = NativeModules;
return FasterImageViewManager.prefetch(sources);
} else {
const { FasterImageModule } = NativeModules;
return FasterImageModule.prefetch(sources);
}
}

0 comments on commit 7af9890

Please sign in to comment.