summaryrefslogtreecommitdiff
path: root/Sora/Views/Post/PostView.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-18 23:39:51 -0800
committerFuwn <[email protected]>2025-02-19 00:00:29 -0800
commit320ce31337ed60cae24a0374fa2d6d79237a6bfe (patch)
treead1e93799efeb8e7a16521e3ab958c911f73f617 /Sora/Views/Post/PostView.swift
parentfeat: Initial commit (diff)
downloadsora-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.swift20
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)
}
}
}