import SwiftUI import HighlightedTextEditor struct LocalizedPageContentView: View { let pageId: String @ObservedObject var page: LocalizedPage @Environment(\.language) private var language @EnvironmentObject private var content: Content @State private var isGeneratingWebsite = false @State private var pageContent: String = "" @State private var didLoadContent = false init(pageId: String, page: LocalizedPage) { self.pageId = pageId self.page = page } var body: some View { VStack(alignment: .leading) { TextField("", text: $page.title) .font(.title) .textFieldStyle(.plain) HStack(alignment: .firstTextBaseline) { Button(action: loadContent) { Text("Load") } Button(action: saveContent) { Text("Save") } Spacer() } HighlightedTextEditor( text: $pageContent, highlightRules: .markdown) } .padding() .onAppear(perform: loadContent) .onDisappear(perform: saveContent) } private func loadContent() { do { let content = try content.storage.pageContent(for: pageId, language: language) guard content != "" else { pageContent = "New file" didLoadContent = false return } pageContent = content didLoadContent = true } catch { print("Failed to load page content: \(error)") pageContent = "Failed to load" } } private func saveContent() { guard didLoadContent else { return } do { try content.storage.save(pageContent: pageContent, for: pageId, language: language) } catch { print("Failed to save content: \(error)") } } }