import NetworkImage import SwiftUI struct PostGridThumbnailView: View { @EnvironmentObject var settings: Settings @EnvironmentObject var manager: BooruManager let post: BooruPost let posts: [BooruPost] private var thumbnailURL: URL? { switch settings.thumbnailType { case .preview: post.previewURL case .sample: post.sampleURL case .original: post.fileURL } } var body: some View { VStack { NetworkImage(url: thumbnailURL, transaction: Transaction(animation: .default)) { image in image .resizable() .aspectRatio(contentMode: .fit) .onScrollVisibilityChange { visible in if post == posts.last, !manager.endOfData, visible { Task { manager.loadNextPage() } } } .blur( radius: settings.blurRatings.contains(post.rating) ? 10 : 0 ) .clipped() .animation(.default, value: settings.blurNSFWThumbnails) .clipShape(RoundedRectangle(cornerRadius: 8)) } placeholder: { ProgressView() .padding() } } } }