import SwiftUI struct PostView: View { @EnvironmentObject var settings: Settings let post: MoebooruPost @ObservedObject var manager: MoebooruManager let posts: [MoebooruPost] private var thumbnailURL: URL? { switch settings.thumbnailType { case .preview: return post.previewURL case .sample: return post.sampleURL case .original: return post.fileURL case .compressed: return post.jpegURL } } var body: some View { VStack { AsyncImage(url: thumbnailURL) { image in image .resizable() .aspectRatio(contentMode: .fit) .onScrollVisibilityChange { visible in if post == posts.last && !manager.endOfData && visible { Task { manager.loadNextPage() } } } .blur(radius: settings.blurNSFWThumbnails ? post.rating != "s" ? 10 : 0 : 0) } placeholder: { ProgressView() .padding() } } } }