diff options
Diffstat (limited to 'Sora/Views/Post/PostView.swift')
| -rw-r--r-- | Sora/Views/Post/PostView.swift | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/Sora/Views/Post/PostView.swift b/Sora/Views/Post/PostView.swift index 97e311c..d070aac 100644 --- a/Sora/Views/Post/PostView.swift +++ b/Sora/Views/Post/PostView.swift @@ -1,17 +1,19 @@ import SwiftUI struct PostView: View { + @EnvironmentObject var settings: Settings let post: MoebooruPost - var softLimit: CGFloat - var thumbnailMode: PostThumbnailMode = .preview + @ObservedObject var manager: MoebooruManager private var thumbnailURL: URL? { - switch thumbnailMode { + switch settings.thumbnailType { case .preview: return post.previewURL case .sample: return post.sampleURL - case .file: + case .original: return post.fileURL + case .compressed: + return post.jpegURL } } @@ -20,11 +22,17 @@ struct PostView: View { AsyncImage(url: thumbnailURL) { image in image .resizable() - .scaledToFit() + .aspectRatio(contentMode: .fit) + .onScrollVisibilityChange { visible in + if post == manager.posts.last && !manager.endOfData && visible { + Task { + manager.loadNextPage() + } + } + } } placeholder: { ProgressView() } - .frame(width: softLimit, height: softLimit) } } } |