summaryrefslogtreecommitdiff
path: root/Sora/Views/Post
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-19 21:51:19 -0800
committerFuwn <[email protected]>2025-02-19 21:51:19 -0800
commita9831c3f6c0dc2062b7e7ade7c9588eba5f7e905 (patch)
tree3e79b164c695b9a0141fded252412e5722462dc7 /Sora/Views/Post
parentfeat: Development commit (diff)
downloadsora-testing-a9831c3f6c0dc2062b7e7ade7c9588eba5f7e905.tar.xz
sora-testing-a9831c3f6c0dc2062b7e7ade7c9588eba5f7e905.zip
feat: Development commit
Diffstat (limited to 'Sora/Views/Post')
-rw-r--r--Sora/Views/Post/PostGridView.swift20
-rw-r--r--Sora/Views/Post/PostView.swift5
2 files changed, 19 insertions, 6 deletions
diff --git a/Sora/Views/Post/PostGridView.swift b/Sora/Views/Post/PostGridView.swift
index 99f5013..0a1c37b 100644
--- a/Sora/Views/Post/PostGridView.swift
+++ b/Sora/Views/Post/PostGridView.swift
@@ -5,26 +5,38 @@ struct PostGridView: View {
@EnvironmentObject var settings: Settings
@ObservedObject var manager: MoebooruManager
+ var filteredPosts: [MoebooruPost] {
+ settings.showNSFWPosts ? manager.posts : manager.posts.filter { $0.rating == "s" }
+ }
+
var body: some View {
ScrollViewReader { _ in
ScrollView {
- if manager.posts.isEmpty {
+ if filteredPosts.isEmpty {
ProgressView()
.padding()
}
- WaterfallGrid(manager.posts, id: \.id) { post in
+ WaterfallGrid(filteredPosts, id: \.id) { post in
Group {
#if os(macOS)
Button {
manager.selectedPost = post
} label: {
- PostView(post: post, manager: manager)
+ PostView(
+ post: post,
+ manager: manager,
+ posts: filteredPosts
+ )
}
.buttonStyle(PlainButtonStyle())
#else
NavigationLink(value: post) {
- PostView(post: post, manager: manager)
+ PostView(
+ post: post,
+ manager: manager,
+ posts: filteredPosts
+ )
}
#endif
}
diff --git a/Sora/Views/Post/PostView.swift b/Sora/Views/Post/PostView.swift
index 335f88e..111d77e 100644
--- a/Sora/Views/Post/PostView.swift
+++ b/Sora/Views/Post/PostView.swift
@@ -4,6 +4,7 @@ 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:
@@ -24,13 +25,13 @@ struct PostView: View {
.resizable()
.aspectRatio(contentMode: .fit)
.onScrollVisibilityChange { visible in
- if post == manager.posts.last && !manager.endOfData && visible {
+ if post == posts.last && !manager.endOfData && visible {
Task {
manager.loadNextPage()
}
}
}
- .blur(radius: settings.blurUnsafeThumbnails ? post.rating != "s" ? 10 : 0 : 0)
+ .blur(radius: settings.blurNSFWThumbnails ? post.rating != "s" ? 10 : 0 : 0)
} placeholder: {
ProgressView()
.padding()