import AppKit import Combine import SwiftUI @MainActor final class AppModel: ObservableObject { enum Section: String, CaseIterable, Identifiable, Hashable { case library = "SD-Karte" case cards = "NFC-Karten" case tonuino = "TonUINO" case settings = "Einstellungen" var id: String { rawValue } var icon: String { switch self { case .library: "sdcard" case .cards: "wave.3.right" case .tonuino: "slider.horizontal.3" case .settings: "gearshape" } } } @Published var section: Section = .library @Published var library = LibraryModel() @Published var cards = CardModel() @Published var status = "Bereit" @Published var errorMessage: String? @Published var showError = false private var childSubscriptions = Set() init() { library.objectWillChange.sink { [weak self] _ in self?.objectWillChange.send() }.store(in: &childSubscriptions) cards.objectWillChange.sink { [weak self] _ in self?.objectWillChange.send() }.store(in: &childSubscriptions) } func report(_ error: Error) { errorMessage = error.localizedDescription showError = true } }