summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-06-14 08:18:13 -0700
committerFuwn <[email protected]>2025-06-14 08:18:13 -0700
commit51dde4f94a8b306f80352b5d5ade6427fa8948be (patch)
tree75f0eda21de299868f0129f6decd42b60b7106db
parentfeat: Development commit (diff)
downloadsora-testing-51dde4f94a8b306f80352b5d5ade6427fa8948be.tar.xz
sora-testing-51dde4f94a8b306f80352b5d5ade6427fa8948be.zip
feat: Development commit
-rw-r--r--Sora/Views/Post/Grid/PostGridView.swift20
1 files changed, 11 insertions, 9 deletions
diff --git a/Sora/Views/Post/Grid/PostGridView.swift b/Sora/Views/Post/Grid/PostGridView.swift
index 165ac01..8e077c3 100644
--- a/Sora/Views/Post/Grid/PostGridView.swift
+++ b/Sora/Views/Post/Grid/PostGridView.swift
@@ -8,6 +8,7 @@ struct PostGridView: View {
@Binding var selectedTab: Int
@State private var viewStates: [UUID: PostGridViewState] = [:]
@State private var isSearchablePresented = false
+ @State private var cachedSuggestions: [Either<BooruTag, BooruSearchQuery>] = []
@Environment(\.isSearching)
private var isSearching
@@ -53,6 +54,13 @@ struct PostGridView: View {
)
}
}
+ .onAppear {
+ if settings.searchSuggestionsMode == .tags {
+ cachedSuggestions = manager.allTags.map { tag in
+ Either<BooruTag, BooruSearchQuery>.left(tag)
+ }
+ }
+ }
.onSubmit(of: .search) {
manager.performSearch(settings: settings)
}
@@ -201,22 +209,16 @@ struct PostGridView: View {
}
private func searchSuggestionsItems() -> [Either<BooruTag, BooruSearchQuery>] {
- let items: [Either<BooruTag, BooruSearchQuery>]
-
switch settings.searchSuggestionsMode {
case .tags:
- items = manager.allTags
- .map { Either<BooruTag, BooruSearchQuery>.left($0) }
+ return cachedSuggestions
case .history:
- items = settings.searchHistory
- .map { Either<BooruTag, BooruSearchQuery>.right($0) }
+ return settings.searchHistory.map { .right($0) }
case .disabled:
- items = []
+ return []
}
-
- return items
}
private func updateViewState(