mirror of
https://github.com/yattee/yattee.git
synced 2025-08-09 20:24:06 +00:00
Use ImageManager of SDWebImageSwiftUI
This commit is contained in:
37
Shared/Videos/ThumbnailView.swift
Normal file
37
Shared/Videos/ThumbnailView.swift
Normal file
@@ -0,0 +1,37 @@
|
||||
import SDWebImageSwiftUI
|
||||
import SwiftUI
|
||||
|
||||
struct ThumbnailView: View {
|
||||
var url: URL?
|
||||
|
||||
@ObservedObject private var imageManager = ImageManager()
|
||||
private var thumbnails = ThumbnailsModel.shared
|
||||
|
||||
init(url: URL? = nil) {
|
||||
self.url = url
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if imageManager.image != nil {
|
||||
#if os(macOS)
|
||||
Image(nsImage: imageManager.image!)
|
||||
.resizable()
|
||||
#else
|
||||
Image(uiImage: imageManager.image!)
|
||||
.resizable()
|
||||
#endif
|
||||
} else {
|
||||
Rectangle().fill(Color("PlaceholderColor"))
|
||||
.onAppear {
|
||||
self.imageManager.setOnFailure { _ in
|
||||
guard let url else { return }
|
||||
self.thumbnails.insertUnloadable(url)
|
||||
}
|
||||
self.imageManager.load(url: url)
|
||||
}
|
||||
.onDisappear { self.imageManager.cancel() }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user