summaryrefslogtreecommitdiff
path: root/Sora/Views
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-26 21:35:55 -0800
committerFuwn <[email protected]>2025-02-26 21:35:55 -0800
commit747004dc9fcb3da6828cda6767d9a063a9a38451 (patch)
tree9e969ba966d53124ae4cd72d01b34fb64edf9383 /Sora/Views
parentfeat: Development commit (diff)
downloadsora-testing-747004dc9fcb3da6828cda6767d9a063a9a38451.tar.xz
sora-testing-747004dc9fcb3da6828cda6767d9a063a9a38451.zip
feat: Development commit
Diffstat (limited to 'Sora/Views')
-rw-r--r--Sora/Views/Post/Details/PostDetailsTagsView.swift22
-rw-r--r--Sora/Views/Post/Details/PostDetailsView.swift27
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
}
}