import SwiftUI import SFSafeSymbols enum ContentDisplayType { case markdown case html case rendered } @main struct CHDataManagementApp: App { private var navigationTitle: String { "" } @StateObject private var content: Content = .init() @State private var selectedLanguage: ContentLanguage = .english var body: some Scene { WindowGroup { TabView { Tab("Posts", systemImage: SFSymbol.rectangleAndPencilAndEllipsis.rawValue) { PostList() } Tab("Pages", systemImage: SFSymbol.textBelowPhoto.rawValue) { PageListView() } Tab("Tags", systemImage: SFSymbol.tag.rawValue) { TagsListView() } Tab("Images", systemImage: SFSymbol.photo.rawValue) { ImagesView() } Tab("Files", systemImage: SFSymbol.doc.rawValue) { FilesView() } Tab("Settings", systemImage: SFSymbol.gear.rawValue) { SettingsView() } } .environment(\.language, selectedLanguage) .environmentObject(content) .toolbar { ToolbarItem(placement: .primaryAction) { Picker("", selection: $selectedLanguage) { Text("English") .tag(ContentLanguage.english) Text("German") .tag(ContentLanguage.german) }.pickerStyle(.segmented) } } .onAppear(perform: importOldContent) .onReceive(Timer.publish(every: 60.0, on: .main, in: .common).autoconnect()) { _ in save() } .toolbar { ToolbarItem(placement: .navigation) { Button(action: save) { Text("Save") } } } } } private func save() { // Save all changed files content.saveToDisk() } private func importOldContent() { do { try content.loadFromDisk() //content.importOldContent() } catch { print("Failed to load content: \(error.localizedDescription)") } } }