diff options
| author | Fuwn <[email protected]> | 2025-02-26 21:35:55 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-26 21:35:55 -0800 |
| commit | 747004dc9fcb3da6828cda6767d9a063a9a38451 (patch) | |
| tree | 9e969ba966d53124ae4cd72d01b34fb64edf9383 /Sora/Views | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-747004dc9fcb3da6828cda6767d9a063a9a38451.tar.xz sora-testing-747004dc9fcb3da6828cda6767d9a063a9a38451.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Views')
| -rw-r--r-- | Sora/Views/Post/Details/PostDetailsTagsView.swift | 22 | ||||
| -rw-r--r-- | Sora/Views/Post/Details/PostDetailsView.swift | 27 |
2 files changed, 38 insertions, 11 deletions
diff --git a/Sora/Views/Post/Details/PostDetailsTagsView.swift b/Sora/Views/Post/Details/PostDetailsTagsView.swift new file mode 100644 index 0000000..7bc04bc --- /dev/null +++ b/Sora/Views/Post/Details/PostDetailsTagsView.swift @@ -0,0 +1,22 @@ +import SwiftUI + +struct PostDetailsTagsView: View { + @EnvironmentObject var manager: BooruManager + @Binding var isPresented: Bool + var tags: [String] + + var body: some View { + List { + ForEach(tags, id: \.self) { tag in + Button(action: { + manager.searchText = tag + manager.selectedPost = nil + manager.performSearch() + isPresented.toggle() + }) { + Text(tag) + } + } + } + } +} diff --git a/Sora/Views/Post/Details/PostDetailsView.swift b/Sora/Views/Post/Details/PostDetailsView.swift index 79cbd62..f28ff54 100644 --- a/Sora/Views/Post/Details/PostDetailsView.swift +++ b/Sora/Views/Post/Details/PostDetailsView.swift @@ -16,6 +16,7 @@ struct PostDetailsView: View { post.fileURL } } + @State private var isTagsSheetPresented = false var body: some View { VStack(spacing: 0) { @@ -42,14 +43,7 @@ struct PostDetailsView: View { if settings.displayTags { VStack(spacing: 5) { HStack { - Text(post.tags.joined(separator: ", ")) - } - .frame(maxWidth: .infinity, alignment: .leading) - - HStack { - Text( - post.createdAt.formatted() - ) + Text(post.createdAt.formatted()) .frame(maxWidth: .infinity, alignment: .leading) Group { @@ -86,9 +80,17 @@ struct PostDetailsView: View { .navigationBarTitleDisplayMode(.inline) .toolbarBackground(.visible, for: .navigationBar) .toolbarBackground(.ultraThinMaterial, for: .navigationBar) - #endif - #if os(macOS) +#endif .toolbar { + ToolbarItem { + Button(action: { + isTagsSheetPresented.toggle() + }) { + Label("Tags", systemImage: "tag") + } + } + +#if os(macOS) if settings.enableShareShortcut { ToolbarItem { ShareLink(item: imageURL!) { @@ -96,7 +98,10 @@ struct PostDetailsView: View { } } } +#endif + } + .sheet(isPresented: $isTagsSheetPresented) { + PostDetailsTagsView(isPresented: $isTagsSheetPresented, tags: post.tags) } - #endif } } |