import Foundation import SwiftUI final class LocalizedPost: ObservableObject { @Published var title: String @Published var content: String @Published var lastModified: Date? @Published var images: [ImageResource] @Published var linkPreviewImage: ImageResource? @Published var linkPreviewTitle: String? @Published var linkPreviewDescription: String? init(title: String? = nil, content: String, lastModified: Date? = nil, images: [ImageResource] = [], linkPreviewImage: ImageResource? = nil, linkPreviewTitle: String? = nil, linkPreviewDescription: String? = nil) { self.title = title ?? "" self.content = content self.lastModified = lastModified self.images = images self.linkPreviewImage = linkPreviewImage self.linkPreviewTitle = linkPreviewTitle self.linkPreviewDescription = linkPreviewDescription } @MainActor func editableTitle() -> Binding { Binding( get: { self.title }, set: { newValue in self.title = newValue } ) } @MainActor func editableContent() -> Binding { Binding( get: { self.content }, set: { newValue in self.content = newValue } ) } }