diff options
| author | Fuwn <[email protected]> | 2025-02-18 23:39:51 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-19 00:00:29 -0800 |
| commit | 320ce31337ed60cae24a0374fa2d6d79237a6bfe (patch) | |
| tree | ad1e93799efeb8e7a16521e3ab958c911f73f617 /Sora/Views/Post/PostView.swift | |
| parent | feat: Initial commit (diff) | |
| download | sora-testing-320ce31337ed60cae24a0374fa2d6d79237a6bfe.tar.xz sora-testing-320ce31337ed60cae24a0374fa2d6d79237a6bfe.zip | |
feat: Development commit
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) } } } |