summaryrefslogtreecommitdiff
path: root/Sora/Data/Booru
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-03-18 04:44:08 -0700
committerFuwn <[email protected]>2025-03-18 04:44:08 -0700
commit82b9b4aa5a9e547acd8b7c64c25d5770150d5392 (patch)
tree5039946d5de0362ce497b698e1290b32c75308cc /Sora/Data/Booru
parentfeat: Development commit (diff)
downloadsora-testing-82b9b4aa5a9e547acd8b7c64c25d5770150d5392.tar.xz
sora-testing-82b9b4aa5a9e547acd8b7c64c25d5770150d5392.zip
feat: Development commit
Diffstat (limited to 'Sora/Data/Booru')
-rw-r--r--Sora/Data/Booru/BooruManager.swift17
1 files changed, 10 insertions, 7 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift
index c77d182..2468a92 100644
--- a/Sora/Data/Booru/BooruManager.swift
+++ b/Sora/Data/Booru/BooruManager.swift
@@ -17,6 +17,7 @@ class BooruManager: ObservableObject {
@Published var provider: BooruProvider
@Published var historyIndex: Int = -1
@Published var searchHistory: [BooruSearchQuery] = []
+ @Published var isNavigatingHistory = false
// MARK: - Private Properties
private var currentTask: Task<Void, Never>?
@@ -102,7 +103,7 @@ class BooruManager: ObservableObject {
pageCache.setObject(cacheEntry, forKey: cacheKey)
updatePosts(newPosts, replace: replace)
} catch {
- if (error as? URLError)?.code != .cancelled { debugPrint("fetchPosts: \(error)") }
+ debugPrint("BooruManager.fetchPosts: \(error)")
}
}
}
@@ -158,22 +159,22 @@ class BooruManager: ObservableObject {
func goBackInHistory() {
guard canGoBackInHistory else { return }
+ isNavigatingHistory = true
historyIndex -= 1
let previousQuery = searchHistory[historyIndex]
searchText = previousQuery.tags.joined(separator: " ")
- currentPage = previousQuery.page
posts = []
- if tags.isEmpty { clearPageCache() }
-
currentTask?.cancel()
currentTask = nil
Task {
- await fetchPosts(page: currentPage, tags: previousQuery.tags, replace: true)
+ await fetchPosts(tags: previousQuery.tags, replace: true)
+
+ isNavigatingHistory = false
}
}
@@ -181,11 +182,11 @@ class BooruManager: ObservableObject {
guard canGoForwardInHistory else { return }
historyIndex += 1
+ isNavigatingHistory = true
let nextQuery = searchHistory[historyIndex]
searchText = nextQuery.tags.joined(separator: " ")
- currentPage = nextQuery.page
posts = []
clearPageCache()
@@ -194,7 +195,9 @@ class BooruManager: ObservableObject {
currentTask = nil
Task {
- await fetchPosts(page: currentPage, tags: nextQuery.tags, replace: true)
+ await fetchPosts(tags: nextQuery.tags, replace: true)
+
+ isNavigatingHistory = false
}
}