diff options
| author | Fuwn <[email protected]> | 2025-06-14 08:18:13 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-06-14 08:18:13 -0700 |
| commit | 51dde4f94a8b306f80352b5d5ade6427fa8948be (patch) | |
| tree | 75f0eda21de299868f0129f6decd42b60b7106db | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-51dde4f94a8b306f80352b5d5ade6427fa8948be.tar.xz sora-testing-51dde4f94a8b306f80352b5d5ade6427fa8948be.zip | |
feat: Development commit
| -rw-r--r-- | Sora/Views/Post/Grid/PostGridView.swift | 20 |
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( |