Cache translations, fix translation popping

Completely refactor Translate View. Simplify bool logic into a state enum.

Changelog-Fixed: Fix translation text popping
Changelog-Added: Cache translations
This commit is contained in:
William Casarin
2023-04-06 10:15:42 -07:00
parent 95fb7bccf8
commit c5341ba337
3 changed files with 144 additions and 78 deletions

View File

@@ -13,6 +13,8 @@ class EventCache {
private var events: [String: NostrEvent] = [:]
private var replies = ReplyMap()
private var cancellable: AnyCancellable?
private var translations: [String: TranslateStatus] = [:]
private var artifacts: [String: NoteArtifacts] = [:]
//private var thread_latest: [String: Int64]
@@ -24,6 +26,22 @@ class EventCache {
}
}
func store_translation_artifacts(evid: String, translated: TranslateStatus) {
self.translations[evid] = translated
}
func store_artifacts(evid: String, artifacts: NoteArtifacts) {
self.artifacts[evid] = artifacts
}
func lookup_artifacts(evid: String) -> NoteArtifacts? {
return self.artifacts[evid]
}
func lookup_translated_artifacts(evid: String) -> TranslateStatus? {
return self.translations[evid]
}
func parent_events(event: NostrEvent) -> [NostrEvent] {
var parents: [NostrEvent] = []
@@ -87,6 +105,8 @@ class EventCache {
private func prune() {
events = [:]
translations = [:]
artifacts = [:]
replies.replies = [:]
}
}