diff options
| author | Fuwn <[email protected]> | 2025-09-10 03:38:03 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-09-10 03:38:03 -0700 |
| commit | 58eeb2406b193bb3a7a011b3ffd15419cb50abcb (patch) | |
| tree | a06047c3e86344a4013a7962a55153a8631ace6c /Sora/Views/Post/Details | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-58eeb2406b193bb3a7a011b3ffd15419cb50abcb.tar.xz sora-testing-58eeb2406b193bb3a7a011b3ffd15419cb50abcb.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Views/Post/Details')
| -rw-r--r-- | Sora/Views/Post/Details/PostDetailsTagsView.swift | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/Sora/Views/Post/Details/PostDetailsTagsView.swift b/Sora/Views/Post/Details/PostDetailsTagsView.swift index 8eac11a..684422e 100644 --- a/Sora/Views/Post/Details/PostDetailsTagsView.swift +++ b/Sora/Views/Post/Details/PostDetailsTagsView.swift @@ -26,24 +26,25 @@ struct PostDetailsTagsView: View { Button(action: { Task { @MainActor in if isNestedContext { - let mainTokens = manager.tags let baseTokens = (baseSearchText ?? "") .components(separatedBy: .whitespaces) .filter { !$0.isEmpty } - var merged = Array(Set(mainTokens + baseTokens)).sorted() + var merged = Array(Set(baseTokens)).sorted() if !merged.contains(tag) { merged.append(tag) } - manager.searchText = merged.joined(separator: " ") - navigationPath = NavigationPath() - isPresented = false + let combinedSearchText = merged.joined(separator: " ") - let localManager = manager - let localSettings = settings + var newPath = navigationPath - Task(priority: .userInitiated) { - await localManager.performSearch(settings: localSettings) + if !newPath.isEmpty { + newPath.removeLast() } + + newPath.append(combinedSearchText) + + navigationPath = newPath + isPresented = false } else { var tokens = manager.tags @@ -63,7 +64,11 @@ struct PostDetailsTagsView: View { }) { Label("Add to Search", systemImage: "plus") } - .disabled(manager.tags.contains(tag)) + .disabled( + isNestedContext + ? (baseSearchText?.components(separatedBy: .whitespaces).contains(tag) ?? false) + : manager.tags.contains(tag) + ) BookmarkMenuButtonView( tags: [tag], |