-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Description
First off thanks for this great library!
Prefetching images on iOS is currently broken because the ImagePrefetcher instance is destroyed immediately after resolving the promise. I fixed this with the following patch-package:
index d653e1c..e8d0e12 100644
--- a/node_modules/@candlefinance/faster-image/ios/FasterImageViewManager.swift
+++ b/node_modules/@candlefinance/faster-image/ios/FasterImageViewManager.swift
@@ -1,6 +1,16 @@
@objc(FasterImageViewManager)
final class FasterImageViewManager: RCTViewManager {
+ // Store the prefetcher as an instance property
+ private let imagePrefetcher: ImagePrefetcher
+
+ override init() {
+ // Configure the shared pipeline or create a dedicated one if needed
+ // Using shared pipeline for simplicity here
+ self.imagePrefetcher = ImagePrefetcher(pipeline: ImagePipeline.shared, destination: .memoryCache) // Or .diskCache
+ super.init()
+ }
+
override func view() -> (FasterImageView) {
return FasterImageView()
}
@@ -27,8 +37,9 @@ final class FasterImageViewManager: RCTViewManager {
func prefetch(sources: [String],
resolve: @escaping RCTPromiseResolveBlock,
reject: @escaping RCTPromiseRejectBlock) {
- let prefetcher = ImagePrefetcher()
- prefetcher.startPrefetching(with: sources.compactMap(URL.init(string:)))
+ // Use the stored imagePrefetcher instance
+ imagePrefetcher.startPrefetching(with: sources.compactMap(URL.init(string:)))
+
resolve(true)
}
}Metadata
Metadata
Assignees
Labels
No labels