diff options
Diffstat (limited to 'Sora/Views')
| -rw-r--r-- | Sora/Views/MainView.swift | 17 | ||||
| -rw-r--r-- | Sora/Views/Settings/Section/SettingsSearchView.swift | 7 | ||||
| -rw-r--r-- | Sora/Views/Settings/SettingsView.swift | 1 |
3 files changed, 25 insertions, 0 deletions
diff --git a/Sora/Views/MainView.swift b/Sora/Views/MainView.swift index 0cf2679..88b93c0 100644 --- a/Sora/Views/MainView.swift +++ b/Sora/Views/MainView.swift @@ -12,6 +12,11 @@ struct MainView: View { .onChange(of: settings.preferredBooru) { _, newState in updateManager(newState) } + .onChange(of: settings.searchSuggestions) { _, newState in + if newState { + refreshTags() + } + } .onAppear(perform: initializeManager) } @@ -44,6 +49,8 @@ struct MainView: View { manager.searchText = previousSearchText Task { + refreshTags() + if manager.searchText.isEmpty { await manager.fetchPosts() } else { @@ -56,9 +63,19 @@ struct MainView: View { manager = BooruManager(settings.preferredBooru) Task { + refreshTags() + if manager.posts.isEmpty { await manager.fetchPosts() } } } + + private func refreshTags() { + if settings.searchSuggestions { + Task { + manager.initializeTags() + } + } + } } diff --git a/Sora/Views/Settings/Section/SettingsSearchView.swift b/Sora/Views/Settings/Section/SettingsSearchView.swift index 63be2f1..644b02c 100644 --- a/Sora/Views/Settings/Section/SettingsSearchView.swift +++ b/Sora/Views/Settings/Section/SettingsSearchView.swift @@ -2,8 +2,15 @@ import SwiftUI struct SettingsSearchView: View { @EnvironmentObject var settings: Settings + @EnvironmentObject var manager: BooruManager var body: some View { Toggle("Suggest Search Tags", isOn: $settings.searchSuggestions) + + Button( + "Clear Cached Tags (\(manager.cacheSize ?? "Unknown size"))" + ) { + manager.clearCachedTags() + } } } diff --git a/Sora/Views/Settings/SettingsView.swift b/Sora/Views/Settings/SettingsView.swift index 02f9e34..a0eba01 100644 --- a/Sora/Views/Settings/SettingsView.swift +++ b/Sora/Views/Settings/SettingsView.swift @@ -43,4 +43,5 @@ struct SettingsView: View { #Preview { SettingsView() .environmentObject(Settings()) + .environmentObject(BooruManager(.yandere)) } |