summaryrefslogtreecommitdiff
path: root/Sora/Views
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Views')
-rw-r--r--Sora/Views/MainView.swift17
-rw-r--r--Sora/Views/Settings/Section/SettingsSearchView.swift7
-rw-r--r--Sora/Views/Settings/SettingsView.swift1
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))
}