diff options
Diffstat (limited to 'Sora/Views/Post/Details/PostDetailsView.swift')
| -rw-r--r-- | Sora/Views/Post/Details/PostDetailsView.swift | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/Sora/Views/Post/Details/PostDetailsView.swift b/Sora/Views/Post/Details/PostDetailsView.swift index 8d62f67..8051cf2 100644 --- a/Sora/Views/Post/Details/PostDetailsView.swift +++ b/Sora/Views/Post/Details/PostDetailsView.swift @@ -4,7 +4,11 @@ struct PostDetailsView: View { @EnvironmentObject var manager: BooruManager @EnvironmentObject var settings: SettingsManager let post: BooruPost + @Binding var navigationPath: NavigationPath @State private var loadingStage: BooruPostLoadingState = .loadingPreview + @State private var isTagsSheetPresented = false + let posts: [BooruPost]? + private var imageURL: URL? { switch settings.detailViewQuality { case .preview: @@ -17,11 +21,17 @@ struct PostDetailsView: View { post.fileURL } } - @State private var isTagsSheetPresented = false + + init(post: BooruPost, navigationPath: Binding<NavigationPath>, posts: [BooruPost]? = nil) { + self.post = post + self._navigationPath = navigationPath + self.posts = posts + } var filteredPosts: [BooruPost] { - manager.posts - .filter { settings.displayRatings.contains($0.rating) } + let sourcePosts = posts ?? manager.posts + + return sourcePosts.filter { settings.displayRatings.contains($0.rating) } } var body: some View { @@ -110,14 +120,7 @@ struct PostDetailsView: View { } #endif } - .sheet( - isPresented: $isTagsSheetPresented, - onDismiss: { - Task(priority: .userInitiated) { - await manager.performSearch(settings: settings) - } - } - ) { + .sheet(isPresented: $isTagsSheetPresented) { if #available(macOS 15.0, *) { tagsSheetContent() #if os(macOS) @@ -131,12 +134,16 @@ struct PostDetailsView: View { @ViewBuilder private func tagsSheetContent() -> some View { - PostDetailsTagsView(isPresented: $isTagsSheetPresented, tags: post.tags) - #if os(macOS) - .frame( - minHeight: (NSScreen.main?.frame.height ?? 1_080) / 2, - maxHeight: .infinity - ) - #endif + PostDetailsTagsView( + isPresented: $isTagsSheetPresented, + navigationPath: $navigationPath, + tags: post.tags + ) + #if os(macOS) + .frame( + minHeight: (NSScreen.main?.frame.height ?? 1_080) / 2, + maxHeight: .infinity + ) + #endif } } |