Rework storage structs, link preview
This commit is contained in:
@@ -35,13 +35,7 @@ final class LocalizedPage: ObservableObject {
|
||||
let originalUrl: String?
|
||||
|
||||
@Published
|
||||
var linkPreviewImage: FileResource?
|
||||
|
||||
@Published
|
||||
var linkPreviewTitle: String?
|
||||
|
||||
@Published
|
||||
var linkPreviewDescription: String?
|
||||
var linkPreview: LinkPreview
|
||||
|
||||
@Published
|
||||
var hideTitle: Bool
|
||||
@@ -51,18 +45,14 @@ final class LocalizedPage: ObservableObject {
|
||||
title: String,
|
||||
lastModified: Date? = nil,
|
||||
originalUrl: String? = nil,
|
||||
linkPreviewImage: FileResource? = nil,
|
||||
linkPreviewTitle: String? = nil,
|
||||
linkPreviewDescription: String? = nil,
|
||||
linkPreview: LinkPreview = .init(),
|
||||
hideTitle: Bool = false) {
|
||||
self.content = content
|
||||
self.urlString = urlString
|
||||
self.title = title
|
||||
self.lastModified = lastModified
|
||||
self.originalUrl = originalUrl
|
||||
self.linkPreviewImage = linkPreviewImage
|
||||
self.linkPreviewTitle = linkPreviewTitle
|
||||
self.linkPreviewDescription = linkPreviewDescription
|
||||
self.linkPreview = linkPreview
|
||||
self.hideTitle = hideTitle
|
||||
}
|
||||
|
||||
@@ -72,6 +62,37 @@ final class LocalizedPage: ObservableObject {
|
||||
}
|
||||
}
|
||||
|
||||
extension LocalizedPage: LinkPreviewItem {
|
||||
|
||||
extension LocalizedPage {
|
||||
|
||||
convenience init(context: LoadingContext, data: LocalizedPage.Data) {
|
||||
self.init(
|
||||
content: context.content,
|
||||
urlString: data.url,
|
||||
title: data.title,
|
||||
lastModified: data.lastModifiedDate,
|
||||
originalUrl: data.originalURL,
|
||||
linkPreview: .init(context: context, data: data.linkPreview),
|
||||
hideTitle: data.hideTitle ?? false)
|
||||
}
|
||||
|
||||
/// The structure to store the metadata of a localized page
|
||||
struct Data: Codable {
|
||||
let url: String
|
||||
let title: String
|
||||
let linkPreview: LinkPreview.Data
|
||||
let lastModifiedDate: Date?
|
||||
let originalURL: String?
|
||||
let hideTitle: Bool?
|
||||
}
|
||||
|
||||
var data: Data {
|
||||
.init(
|
||||
url: urlString,
|
||||
title: title,
|
||||
linkPreview: linkPreview.data,
|
||||
lastModifiedDate: lastModified,
|
||||
originalURL: originalUrl,
|
||||
hideTitle: hideTitle ? true : nil)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user