diff options
Diffstat (limited to 'Sora/Views')
| -rw-r--r-- | Sora/Views/Post/PostGridView.swift | 20 | ||||
| -rw-r--r-- | Sora/Views/Post/PostView.swift | 5 | ||||
| -rw-r--r-- | Sora/Views/Settings/SettingsThumbnailsView.swift | 20 |
3 files changed, 36 insertions, 9 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() diff --git a/Sora/Views/Settings/SettingsThumbnailsView.swift b/Sora/Views/Settings/SettingsThumbnailsView.swift index 04b4afb..d5fe750 100644 --- a/Sora/Views/Settings/SettingsThumbnailsView.swift +++ b/Sora/Views/Settings/SettingsThumbnailsView.swift @@ -49,14 +49,28 @@ struct SettingsThumbnailsView: View { #if os(macOS) HStack { - Text("Blur Unsafe Thumbnails") + Text("Show NSFW Posts") Spacer() - Toggle("", isOn: $settings.blurUnsafeThumbnails) + Toggle("", isOn: $settings.showNSFWPosts) } #else - Toggle("Blur Unsafe Thumbnails", isOn: $settings.blurUnsafeThumbnails) + Toggle("Show NSFW Posts", isOn: $settings.showNSFWPosts) #endif + + if settings.showNSFWPosts { + #if os(macOS) + HStack { + Text("Blur NSFW Thumbnails") + + Spacer() + + Toggle("", isOn: $settings.blurNSFWThumbnails) + } + #else + Toggle("Blur NSFW Thumbnails", isOn: $settings.blurUnsafeThumbnails) + #endif + } } } |