// // ExportMenu.swift // Todos // // Created by Sam Jaffe on 3/1/26. // import SwiftUI import SwiftData import UniformTypeIdentifiers struct ExportMenu: View { @Environment(\.modelContext) private var modelContext @AppStorage(UserDefaultsKeys.Category) var allGroups = CodableArray() @AppStorage(UserDefaultsKeys.UrlHints) var allHints = CodableArray() @Query private var items: [Project] @State private var showingExporter = false var body: some View { Button("Export", systemImage: "square.and.arrow.up") { showingExporter = true } .keyboardShortcut("E", modifiers: [.command, .shift]) .fileExporter(isPresented: $showingExporter, document: StubJsonDocument(), contentType: .json) { result in switch result { case .success(let url): let transfer = Transfer(projects: items, hints: allHints, categories: allGroups) guard let data = try? JSONEncoder().encode(transfer) else { return } SaveController.save(data: data, toUrl: url) case .failure(let error): print(error.localizedDescription) } } } } #Preview { ExportMenu() }