48 lines
755 B
Swift
48 lines
755 B
Swift
// Copyright 2022-present 650 Industries. All rights reserved.
|
|
|
|
import ExpoModulesCore
|
|
|
|
struct ImageSource: Record {
|
|
@Field
|
|
var width: Double = 0.0
|
|
|
|
@Field
|
|
var height: Double = 0.0
|
|
|
|
@Field
|
|
var uri: URL? = nil
|
|
|
|
@Field
|
|
var scale: Double = 1.0
|
|
|
|
@Field
|
|
var headers: [String: String]?
|
|
|
|
@Field
|
|
var cacheKey: String?
|
|
|
|
var pixelCount: Double {
|
|
return width * height * scale * scale
|
|
}
|
|
|
|
var isBlurhash: Bool {
|
|
return uri?.scheme == "blurhash"
|
|
}
|
|
|
|
var isThumbhash: Bool {
|
|
return uri?.scheme == "thumbhash"
|
|
}
|
|
|
|
var isPhotoLibraryAsset: Bool {
|
|
return isPhotoLibraryAssetUrl(uri)
|
|
}
|
|
|
|
var isSFSymbol: Bool {
|
|
return uri?.scheme == "sf"
|
|
}
|
|
|
|
var cacheOriginalImage: Bool {
|
|
return !isPhotoLibraryAsset
|
|
}
|
|
}
|