diff options
Diffstat (limited to 'Sora/Views/Post')
| -rw-r--r-- | Sora/Views/Post/Details/PostDetailsTagsView.swift | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Sora/Views/Post/Details/PostDetailsTagsView.swift b/Sora/Views/Post/Details/PostDetailsTagsView.swift index 803273b..a8c3abc 100644 --- a/Sora/Views/Post/Details/PostDetailsTagsView.swift +++ b/Sora/Views/Post/Details/PostDetailsTagsView.swift @@ -7,27 +7,34 @@ struct PostDetailsTagsView: View { var tags: [String] var body: some View { + let bookmarkedTags = Set(settings.bookmarks.flatMap(\.tags)) + List { ForEach(tags, id: \.self) { tag in Button(action: { - manager.searchText = tag + Task { @MainActor in + manager.searchText = tag - search() + search() + } }) { Text(tag) } + .id(tag) .contextMenu { if !manager.searchText.contains(tag) { Button(action: { - manager.searchText += " \(tag)" + Task { @MainActor in + manager.searchText += " \(tag)" - search() + search() + } }) { Label("Add to Search", systemImage: "plus") } } - let isBookmarked = settings.bookmarks.contains { $0.tags.contains(tag) } + let isBookmarked = bookmarkedTags.contains(tag) Button(action: { if isBookmarked { |