summaryrefslogtreecommitdiff
path: root/Sora
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-09-10 03:38:03 -0700
committerFuwn <[email protected]>2025-09-10 03:38:03 -0700
commit58eeb2406b193bb3a7a011b3ffd15419cb50abcb (patch)
treea06047c3e86344a4013a7962a55153a8631ace6c /Sora
parentfeat: Development commit (diff)
downloadsora-testing-58eeb2406b193bb3a7a011b3ffd15419cb50abcb.tar.xz
sora-testing-58eeb2406b193bb3a7a011b3ffd15419cb50abcb.zip
feat: Development commit
Diffstat (limited to 'Sora')
-rw-r--r--Sora/Views/Post/Details/PostDetailsTagsView.swift25
-rw-r--r--Sora/Views/Post/Grid/PostGridView.swift4
2 files changed, 18 insertions, 11 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],
diff --git a/Sora/Views/Post/Grid/PostGridView.swift b/Sora/Views/Post/Grid/PostGridView.swift
index 62706c2..6d96bdc 100644
--- a/Sora/Views/Post/Grid/PostGridView.swift
+++ b/Sora/Views/Post/Grid/PostGridView.swift
@@ -241,7 +241,9 @@ struct PostGridView: View { // swiftlint:disable:this type_body_length
}
.onAppear {
if let initialTag {
- localSearchText = initialTag
+ if localSearchText.isEmpty || !hasAppearedBefore {
+ localSearchText = initialTag
+ }
if !hasAppearedBefore {
hasAppearedBefore = true