import SwiftUI struct PostView: View { let post: MoebooruPost var softLimit: CGFloat var thumbnailMode: PostThumbnailMode = .preview private var thumbnailURL: URL? { switch thumbnailMode { case .preview: return post.previewURL case .sample: return post.sampleURL case .file: return post.fileURL } } var body: some View { VStack { AsyncImage(url: thumbnailURL) { image in image .resizable() .scaledToFit() } placeholder: { ProgressView() } .frame(width: softLimit, height: softLimit) } } }