payment and list
This commit is contained in:
@@ -15,7 +15,7 @@ struct CachedRemoteImage<Placeholder: View>: View {
|
||||
|
||||
init(
|
||||
imageURL: String?,
|
||||
ttl: TimeInterval = 6 * 60 * 60,
|
||||
ttl: TimeInterval = AppCacheTTL.twoHours,
|
||||
@ViewBuilder placeholder: () -> Placeholder
|
||||
) {
|
||||
self.imageURL = imageURL
|
||||
@@ -100,7 +100,18 @@ final class CachedRemoteImageLoader: ObservableObject {
|
||||
guard let normalized, normalized.isEmpty == false else { return }
|
||||
|
||||
#if canImport(UIKit) || canImport(AppKit)
|
||||
let dataCacheKey = Self.dataURLCacheKey(normalized)
|
||||
if let cachedDataImage: PlatformImage = AppContentCache.shared.value(for: dataCacheKey, as: PlatformImage.self) {
|
||||
#if canImport(UIKit)
|
||||
uiImage = cachedDataImage
|
||||
#elseif canImport(AppKit)
|
||||
nsImage = cachedDataImage
|
||||
#endif
|
||||
return
|
||||
}
|
||||
|
||||
if let image = Self.imageFromDataURL(normalized) {
|
||||
AppContentCache.shared.set(image, for: dataCacheKey, ttl: ttl)
|
||||
#if canImport(UIKit)
|
||||
uiImage = image
|
||||
#elseif canImport(AppKit)
|
||||
@@ -134,6 +145,12 @@ final class CachedRemoteImageLoader: ObservableObject {
|
||||
return normalized
|
||||
}
|
||||
|
||||
private static func dataURLCacheKey(_ source: String) -> String {
|
||||
let head = String(source.prefix(48))
|
||||
let tail = String(source.suffix(48))
|
||||
return "data-image:\(source.count):\(head):\(tail)"
|
||||
}
|
||||
|
||||
#if canImport(UIKit) || canImport(AppKit)
|
||||
private static func imageFromDataURL(_ source: String) -> PlatformImage? {
|
||||
let lower = source.lowercased()
|
||||
|
||||
Reference in New Issue
Block a user