parent
b4d9bca76b
commit
f78c2de4a4
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 834 KiB |
@ -0,0 +1,68 @@ |
|||||||
|
// |
||||||
|
// EmailService.swift |
||||||
|
// LeCountdown |
||||||
|
// |
||||||
|
// Created by Laurent Morvillier on 14/03/2023. |
||||||
|
// |
||||||
|
|
||||||
|
import Foundation |
||||||
|
import MessageUI |
||||||
|
import SwiftUI |
||||||
|
|
||||||
|
struct MailView: UIViewControllerRepresentable { |
||||||
|
|
||||||
|
@Binding var isShowing: Bool |
||||||
|
// @Binding var result: Result<MFMailComposeResult, Error>? |
||||||
|
|
||||||
|
class Coordinator: NSObject, MFMailComposeViewControllerDelegate { |
||||||
|
|
||||||
|
@Binding var isShowing: Bool |
||||||
|
// @Binding var result: Result<MFMailComposeResult, Error>? |
||||||
|
|
||||||
|
init(isShowing: Binding<Bool>) { |
||||||
|
_isShowing = isShowing |
||||||
|
// _result = result |
||||||
|
} |
||||||
|
|
||||||
|
func mailComposeController(_ controller: MFMailComposeViewController, |
||||||
|
didFinishWith result: MFMailComposeResult, |
||||||
|
error: Error?) { |
||||||
|
isShowing = false |
||||||
|
|
||||||
|
// guard error == nil else { |
||||||
|
// self.result = .failure(error!) |
||||||
|
// return |
||||||
|
// } |
||||||
|
// self.result = .success(result) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
func makeCoordinator() -> Coordinator { |
||||||
|
return Coordinator(isShowing: $isShowing) |
||||||
|
} |
||||||
|
|
||||||
|
func makeUIViewController(context: UIViewControllerRepresentableContext<MailView>) -> MFMailComposeViewController { |
||||||
|
let vc = MFMailComposeViewController() |
||||||
|
vc.mailComposeDelegate = context.coordinator |
||||||
|
vc.setSubject(Bundle.main.applicationName) |
||||||
|
vc.setToRecipients(["laurent@staxriver.com"]) |
||||||
|
return vc |
||||||
|
} |
||||||
|
|
||||||
|
func updateUIViewController(_ uiViewController: MFMailComposeViewController, |
||||||
|
context: UIViewControllerRepresentableContext<MailView>) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
fileprivate extension Bundle { |
||||||
|
var applicationName: String { |
||||||
|
if let displayName: String = self.infoDictionary?["CFBundleDisplayName"] as? String { |
||||||
|
return displayName |
||||||
|
} else if let name: String = self.infoDictionary?["CFBundleName"] as? String { |
||||||
|
return name |
||||||
|
} |
||||||
|
return "" |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue