Integrate tag overview into settings file

This commit is contained in:
Christoph Hagen
2025-01-06 11:01:02 +01:00
parent 48cfa204e2
commit 96c0a75c2f
5 changed files with 7 additions and 20 deletions

View File

@@ -76,9 +76,6 @@ extension Content {
let externalFiles = storage.loadExternalFileList() ?? []
if externalFiles.isEmpty { print("No external files loaded") }
let tagOverviewData = storage.loadTagOverview()
if tagOverviewData == nil { print("No tag overview loaded") }
print("Loaded data from disk, processing...")
// All data loaded from storage, start constructing the data model
@@ -134,7 +131,7 @@ extension Content {
linkedPage: linkedPage)
}
let tagOverview = tagOverviewData.map { file in
let tagOverview = settings.tagOverview.map { file in
TagOverviewPage(
content: self,
german: .init(content: self, file: file.german, image: file.german.linkPreviewImage.map { files[$0] }),

View File

@@ -12,7 +12,7 @@ extension Content {
failedSaves += pages.count { !storage.save(pageMetadata: $0.pageFile, for: $0.id) }
failedSaves += posts.count { !storage.save(post: $0.postFile, for: $0.id) }
failedSaves += tags.count { !storage.save(tagMetadata: $0.file, for: $0.id) }
failedSaves.increment(!storage.save(settings: settings.file))
failedSaves.increment(!storage.save(settings: settings.file(tagOverview: tagOverview)))
let fileDescriptions: [FileDescriptions] = files.sorted().compactMap { file in
guard !file.english.isEmpty || !file.german.isEmpty else {
@@ -25,7 +25,6 @@ extension Content {
}
failedSaves.increment(!storage.save(fileDescriptions: fileDescriptions))
failedSaves.increment(!storage.save(tagOverview: tagOverview?.file))
let externalFileList = files.filter { $0.isExternallyStored }.map { $0.id }
failedSaves.increment(!storage.save(externalFileList: externalFileList))

View File

@@ -60,13 +60,14 @@ final class Settings: ObservableObject {
self.english = .init(file: file.english)
}
var file: SettingsFile {
func file(tagOverview: TagOverviewPage?) -> SettingsFile {
.init(
paths: paths.file,
navigation: navigation.file,
posts: posts.file,
pages: pages.file,
audioPlayer: audioPlayer.file,
tagOverview: tagOverview?.file,
german: german.file,
english: english.file)
}