diff options
Diffstat (limited to 'Sora/Views/Post/PostGridView.swift')
| -rw-r--r-- | Sora/Views/Post/PostGridView.swift | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/Sora/Views/Post/PostGridView.swift b/Sora/Views/Post/PostGridView.swift index 625cb1e..3ccc772 100644 --- a/Sora/Views/Post/PostGridView.swift +++ b/Sora/Views/Post/PostGridView.swift @@ -3,11 +3,12 @@ import WaterfallGrid struct PostGridView: View { @EnvironmentObject var settings: Settings - @ObservedObject var manager: MoebooruManager + @ObservedObject var manager: BooruManager @Environment(\.isSearching) private var isSearching - var filteredPosts: [MoebooruPost] { - settings.showNSFWPosts ? manager.posts : manager.posts.filter { $0.rating == "s" } + var filteredPosts: [BooruPost] { + (settings.showNSFWPosts ? manager.posts : manager.posts.filter { $0.rating == "s" || $0.rating == "q" }) + .sorted(by: { $0.id > $1.id }) } var body: some View { @@ -54,12 +55,7 @@ struct PostGridView: View { } } .onSubmit(of: .search, manager.performSearch) - .task { - if manager.posts.isEmpty { - await manager.fetchPosts(page: manager.currentPage) - } - } - .navigationDestination(for: MoebooruPost.self) { post in + .navigationDestination(for: BooruPost.self) { post in PostDetailsView(post: post) } .onChange(of: manager.searchText) { _, _ in @@ -69,20 +65,19 @@ struct PostGridView: View { } } } - #if os(macOS) .toolbar { - ToolbarItem { - Button(action: { - Task { - await manager.fetchPosts(page: 1, tags: manager.tags, replace: true) + #if os(macOS) + ToolbarItem { + Button(action: { + Task { + await manager.fetchPosts(page: 1, tags: manager.tags, replace: true) + } + }) { + Label("Refresh", systemImage: "arrow.clockwise") } - }) { - Label("Refresh", systemImage: "arrow.clockwise") } - } - } - #endif - .toolbar { + #endif + if !manager.tags.isEmpty { #if os(macOS) ToolbarItem { |