Add visibility property to Tag, improve UI
This commit is contained in:
@ -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] }
|
||||
|
@ -17,7 +17,7 @@ final class LocalizedTag: ObservableObject {
|
||||
|
||||
/// The image id of the thumbnail
|
||||
@Published
|
||||
var thumbnail: String?
|
||||
var thumbnail: ImageResource?
|
||||
|
||||
/// The original url in the previous site layout
|
||||
let originalUrl: String?
|
||||
@ -26,7 +26,7 @@ final class LocalizedTag: ObservableObject {
|
||||
name: String,
|
||||
subtitle: String? = nil,
|
||||
description: String? = nil,
|
||||
thumbnail: String? = nil,
|
||||
thumbnail: ImageResource? = nil,
|
||||
originalUrl: String? = nil) {
|
||||
self.urlComponent = urlComponent
|
||||
self.name = name
|
||||
|
@ -4,6 +4,7 @@ extension Tag {
|
||||
|
||||
var tagFile: TagFile {
|
||||
.init(id: id,
|
||||
isVisible: isVisible,
|
||||
german: german.tagFile,
|
||||
english: english.tagFile)
|
||||
}
|
||||
@ -16,7 +17,7 @@ extension LocalizedTag {
|
||||
name: name,
|
||||
subtitle: subtitle,
|
||||
description: description,
|
||||
thumbnail: thumbnail,
|
||||
thumbnail: thumbnail?.id,
|
||||
originalURL: originalUrl)
|
||||
}
|
||||
}
|
||||
|
@ -6,13 +6,17 @@ final class Tag: ObservableObject {
|
||||
english.urlComponent
|
||||
}
|
||||
|
||||
@Published
|
||||
var isVisible: Bool
|
||||
|
||||
@Published
|
||||
var german: LocalizedTag
|
||||
|
||||
@Published
|
||||
var english: LocalizedTag
|
||||
|
||||
init(german: LocalizedTag, english: LocalizedTag) {
|
||||
init(isVisible: Bool = true, german: LocalizedTag, english: LocalizedTag) {
|
||||
self.isVisible = isVisible
|
||||
self.german = german
|
||||
self.english = english
|
||||
}
|
||||
|
5
CHDataManagement/Model/WebsiteData.swift
Normal file
5
CHDataManagement/Model/WebsiteData.swift
Normal file
@ -0,0 +1,5 @@
|
||||
import Foundation
|
||||
|
||||
final class WebsiteData: ObservableObject {
|
||||
|
||||
}
|
Reference in New Issue
Block a user