Improve page and post detail views
This commit is contained in:
@ -23,7 +23,7 @@ extension Content {
|
||||
linkPreviewDescription: post.linkPreviewDescription)
|
||||
}
|
||||
|
||||
private func convert(_ page: LocalizedPageFile) -> LocalizedPage {
|
||||
private func convert(_ page: LocalizedPageFile, images: [String : ImageResource]) -> LocalizedPage {
|
||||
LocalizedPage(
|
||||
urlString: page.url,
|
||||
title: page.title,
|
||||
@ -32,7 +32,7 @@ extension Content {
|
||||
files: Set(page.files),
|
||||
externalFiles: Set(page.externalFiles),
|
||||
requiredFiles: Set(page.requiredFiles),
|
||||
linkPreviewImage: page.linkPreviewImage,
|
||||
linkPreviewImage: page.linkPreviewImage.map { images[$0] },
|
||||
linkPreviewTitle: page.linkPreviewTitle,
|
||||
linkPreviewDescription: page.linkPreviewDescription)
|
||||
}
|
||||
@ -84,7 +84,7 @@ extension Content {
|
||||
english: convert(data.value.english, images: images))
|
||||
}
|
||||
|
||||
let pages: [String : Page] = loadPages(pagesData, tags: tags)
|
||||
let pages: [String : Page] = loadPages(pagesData, tags: tags, images: images)
|
||||
|
||||
let posts = postsData.map { postId, post in
|
||||
let linkedPage = post.linkedPageId.map { pages[$0] }
|
||||
@ -134,7 +134,7 @@ extension Content {
|
||||
english: convert(settings.english))
|
||||
}
|
||||
|
||||
private func loadPages(_ pagesData: [String : PageFile], tags: [String : Tag]) -> [String : Page] {
|
||||
private func loadPages(_ pagesData: [String : PageFile], tags: [String : Tag], images: [String : ImageResource]) -> [String : Page] {
|
||||
pagesData.reduce(into: [:]) { pages, data in
|
||||
let (pageId, page) = data
|
||||
pages[pageId] = Page(
|
||||
@ -143,8 +143,8 @@ extension Content {
|
||||
createdDate: page.createdDate,
|
||||
startDate: page.startDate,
|
||||
endDate: page.endDate,
|
||||
german: convert(page.german),
|
||||
english: convert(page.english),
|
||||
german: convert(page.german, images: images),
|
||||
english: convert(page.english, images: images),
|
||||
tags: page.tags.map { tags[$0]! })
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ extension Content {
|
||||
german: image.germanDescription.nonEmpty,
|
||||
english: image.englishDescription.nonEmpty)
|
||||
}
|
||||
|
||||
|
||||
storage.save(imageDescriptions: imageDescriptions)
|
||||
|
||||
do {
|
||||
@ -65,7 +65,7 @@ private extension LocalizedPage {
|
||||
externalFiles: externalFiles.sorted(),
|
||||
requiredFiles: requiredFiles.sorted(),
|
||||
title: title,
|
||||
linkPreviewImage: linkPreviewImage,
|
||||
linkPreviewImage: linkPreviewImage?.id,
|
||||
linkPreviewTitle: linkPreviewTitle,
|
||||
linkPreviewDescription: linkPreviewDescription,
|
||||
lastModifiedDate: lastModified,
|
||||
|
@ -56,7 +56,7 @@ final class LocalizedPage: ObservableObject {
|
||||
var requiredFiles: Set<String> = []
|
||||
|
||||
@Published
|
||||
var linkPreviewImage: String?
|
||||
var linkPreviewImage: ImageResource?
|
||||
|
||||
@Published
|
||||
var linkPreviewTitle: String?
|
||||
@ -71,7 +71,7 @@ final class LocalizedPage: ObservableObject {
|
||||
files: Set<String> = [],
|
||||
externalFiles: Set<String> = [],
|
||||
requiredFiles: Set<String> = [],
|
||||
linkPreviewImage: String? = nil,
|
||||
linkPreviewImage: ImageResource? = nil,
|
||||
linkPreviewTitle: String? = nil,
|
||||
linkPreviewDescription: String? = nil) {
|
||||
self.urlString = urlString
|
||||
|
Reference in New Issue
Block a user