SaveAsMenu.swift 793 B

12345678910111213141516171819202122232425262728293031323334353637
  1. //
  2. // SaveAsMenu.swift
  3. // Todos
  4. //
  5. // Created by Sam Jaffe on 3/1/26.
  6. //
  7. import SwiftUI
  8. import SwiftData
  9. import UniformTypeIdentifiers
  10. struct SaveAsMenu: View {
  11. @Environment(\.modelContext) private var modelContext
  12. @Query private var items: [Project]
  13. @State private var showingExporter = false
  14. var body: some View {
  15. Button("Save As") {
  16. showingExporter = true
  17. }
  18. .keyboardShortcut("S", modifiers: [.command, .shift])
  19. .fileExporter(isPresented: $showingExporter, document: StubYamlDocument(),
  20. contentType: .yaml) { result in
  21. switch result {
  22. case .success(let url):
  23. SaveController.save(items, toUrl: url)
  24. case .failure(let error):
  25. print(error.localizedDescription)
  26. }
  27. }
  28. }
  29. }
  30. #Preview {
  31. SaveAsMenu()
  32. }