Use CachedAsyncImage if possible

This commit is contained in:
Arkadiusz Fal
2022-12-16 22:37:30 +01:00
parent 26d3fba0f3
commit 5054f828de
5 changed files with 98 additions and 4 deletions

View File

@@ -10,6 +10,8 @@ struct BaseCacheModel {
static let jsonFromDataTransformer: (Data) -> JSON = { try! JSON(data: $0) }
static let jsonTransformer = Transformer(toData: jsonToDataTransformer, fromData: jsonFromDataTransformer)
static let imageCache = URLCache(memoryCapacity: 512 * 1000 * 1000, diskCapacity: 10 * 1000 * 1000 * 1000)
var models: [CacheModel] {
[
FeedCacheModel.shared,
@@ -23,10 +25,12 @@ struct BaseCacheModel {
func clear() {
models.forEach { $0.clear() }
Self.imageCache.removeAllCachedResponses()
}
var totalSize: Int {
models.compactMap { $0.storage?.totalDiskStorageSize }.reduce(0, +)
models.compactMap { $0.storage?.totalDiskStorageSize }.reduce(0, +) + Self.imageCache.currentDiskUsage
}
var totalSizeFormatted: String {

View File

@@ -7,7 +7,9 @@ final class ThumbnailsModel: ObservableObject {
@Published var unloadable = Set<URL>()
func insertUnloadable(_ url: URL) {
unloadable.insert(url)
DispatchQueue.main.async {
self.unloadable.insert(url)
}
}
func isUnloadable(_ url: URL!) -> Bool {