// // MailView.swift // SimpleX (iOS) // // Created by spaced4ndy on 01.05.2023. // Copyright © 2023 SimpleX Chat. All rights reserved. // import SwiftUI import UIKit import MessageUI struct MailView: UIViewControllerRepresentable { @Binding var isShowing: Bool @Binding var result: Result? var subject = "" var messageBody = "" class Coordinator: NSObject, MFMailComposeViewControllerDelegate { @Binding var isShowing: Bool @Binding var result: Result? init(isShowing: Binding, result: Binding?>) { _isShowing = isShowing _result = result } func mailComposeController( _ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error? ) { defer { isShowing = false } if let error = error { self.result = .failure(error) return } self.result = .success(result) } } func makeCoordinator() -> Coordinator { return Coordinator(isShowing: $isShowing, result: $result) } func makeUIViewController(context: UIViewControllerRepresentableContext) -> MFMailComposeViewController { let vc = MFMailComposeViewController() vc.setSubject(subject) vc.setMessageBody(messageBody, isHTML: true) vc.mailComposeDelegate = context.coordinator return vc } func updateUIViewController(_ uiViewController: MFMailComposeViewController, context: UIViewControllerRepresentableContext) { } }