瀏覽代碼

fix: separate yaml/json modes

Sam Jaffe 2 周之前
父節點
當前提交
36a07e7552
共有 3 個文件被更改,包括 15 次插入3 次删除
  1. 1 1
      Todos/View/Menu/ExportMenu.swift
  2. 1 1
      Todos/View/Menu/SaveAsMenu.swift
  3. 13 1
      Todos/ViewModel/StubDocument.swift

+ 1 - 1
Todos/View/Menu/ExportMenu.swift

@@ -22,7 +22,7 @@ struct ExportMenu: View {
       showingExporter = true
     }
     .keyboardShortcut("E", modifiers: [.command, .shift])
-    .fileExporter(isPresented: $showingExporter, document: StubDocument(),
+    .fileExporter(isPresented: $showingExporter, document: StubJsonDocument(),
                   contentType: .json) { result in
       switch result {
       case .success(let url):

+ 1 - 1
Todos/View/Menu/SaveAsMenu.swift

@@ -20,7 +20,7 @@ struct SaveAsMenu: View {
       showingExporter = true
     }
     .keyboardShortcut("S", modifiers: [.command, .shift])
-    .fileExporter(isPresented: $showingExporter, document: StubDocument(),
+    .fileExporter(isPresented: $showingExporter, document: StubYamlDocument(),
                   contentType: .yaml) { result in
       switch result {
       case .success(let url):

+ 13 - 1
Todos/ViewModel/StubDocument.swift

@@ -9,7 +9,7 @@ import Foundation
 import SwiftUI
 import UniformTypeIdentifiers
 
-struct StubDocument : FileDocument {
+struct StubYamlDocument : FileDocument {
   static var readableContentTypes = [UTType.yaml]
     
   init() {}
@@ -20,3 +20,15 @@ struct StubDocument : FileDocument {
     return FileWrapper(regularFileWithContents: Data())
   }
 }
+
+struct StubJsonDocument : FileDocument {
+  static var readableContentTypes = [UTType.json]
+  
+  init() {}
+  
+  init(configuration: ReadConfiguration) throws {}
+  
+  func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper {
+    return FileWrapper(regularFileWithContents: Data())
+  }
+}