Add visibility property to Tag, improve UI

This commit is contained in:
Christoph Hagen
2024-12-01 15:01:36 +01:00
parent 0e3fea9b0d
commit 1261ea534b
12 changed files with 132 additions and 20 deletions

View File

@ -79,13 +79,13 @@ final class Content: ObservableObject {
.store(in: &cancellables)
}
private func convert(_ tag: LocalizedTagFile) -> LocalizedTag {
private func convert(_ tag: LocalizedTagFile, images: [String : ImageResource]) -> LocalizedTag {
LocalizedTag(
urlComponent: tag.urlComponent,
name: tag.name,
subtitle: tag.subtitle,
description: tag.description,
thumbnail: tag.thumbnail,
thumbnail: tag.thumbnail.map { images[$0] },
originalUrl: tag.originalURL)
}
@ -122,13 +122,6 @@ final class Content: ObservableObject {
let postsData = try storage.loadAllPosts()
let filesData = try storage.loadAllFiles()
let tags = tagData.reduce(into: [:]) { (tags, data) in
tags[data.key] = Tag(german: convert(data.value.german),
english: convert(data.value.english))
}
let pages: [String : Page] = loadPages(pagesData, tags: tags)
let images: [String : ImageResource] = filesData.reduce(into: [:]) { dict, item in
let (file, url) = item
let ext = file.components(separatedBy: ".").last!.lowercased()
@ -145,6 +138,15 @@ final class Content: ObservableObject {
}
return FileResource(uniqueId: file, description: "")
}
let tags = tagData.reduce(into: [:]) { (tags, data) in
tags[data.key] = Tag(
isVisible: data.value.isVisible,
german: convert(data.value.german, images: images),
english: convert(data.value.english, images: images))
}
let pages: [String : Page] = loadPages(pagesData, tags: tags)
let posts = postsData.map { postId, post in
let linkedPage = post.linkedPageId.map { pages[$0] }