struct EditDocumentView: View {
   @State private var appData = ApplicationData.shared
   @Environment(\.dismiss) var dismiss
   @State private var inputText: String = ""
   let selectedFile: FileInfo

   var body: some View {
      GroupBox {
         TextEditor(text: $inputText)
      }
      .navigationBarTitle(selectedFile.name)
      .toolbarTitleDisplayMode(.inline)
      .toolbar {
         ToolbarItem(placement: .topBarTrailing) {
            Button("Save") {
               Task {
                  await appData.saveDocument(url: selectedFile.url, content: inputText)
                  dismiss()
               }
            }
         }
      }
      .task {
         inputText = await appData.openDocument(url: selectedFile.url)
      }
   }
}
#Preview {
   NavigationStack {
      EditDocumentView(selectedFile: FileInfo(name: "", url: URL(fileURLWithPath: "")))
   }
}