diff options
| author | Fuwn <[email protected]> | 2025-02-19 21:51:19 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-19 21:51:19 -0800 |
| commit | a9831c3f6c0dc2062b7e7ade7c9588eba5f7e905 (patch) | |
| tree | 3e79b164c695b9a0141fded252412e5722462dc7 /Sora/Views/Post | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-a9831c3f6c0dc2062b7e7ade7c9588eba5f7e905.tar.xz sora-testing-a9831c3f6c0dc2062b7e7ade7c9588eba5f7e905.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Views/Post')
| -rw-r--r-- | Sora/Views/Post/PostGridView.swift | 20 | ||||
| -rw-r--r-- | Sora/Views/Post/PostView.swift | 5 |
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() |