summaryrefslogtreecommitdiff
path: root/Sora/Views
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Views')
-rw-r--r--Sora/Views/Post/PostGridView.swift20
-rw-r--r--Sora/Views/Post/PostView.swift5
-rw-r--r--Sora/Views/Settings/SettingsThumbnailsView.swift20
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
+ }
}
}