mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 14:53:25 +01:00
[ADD] Debug entries for refresh attempts, sending feedback, advanced settings, and resetting the pairing file
This commit is contained in:
committed by
Joe Mattiello
parent
07159b0ea6
commit
723c8e9539
@@ -0,0 +1,71 @@
|
||||
//
|
||||
// MailComposeView.swift
|
||||
// SideStore
|
||||
//
|
||||
// Created by Fabian Thies on 04.02.23.
|
||||
// Copyright © 2023 SideStore. All rights reserved.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
import MessageUI
|
||||
|
||||
struct MailComposeView: UIViewControllerRepresentable {
|
||||
typealias ActionHandler = () -> Void
|
||||
typealias ErrorHandler = (Error) -> Void
|
||||
|
||||
static var canSendMail: Bool {
|
||||
MFMailComposeViewController.canSendMail()
|
||||
}
|
||||
|
||||
let recipients: [String]
|
||||
let subject: String
|
||||
var body: String? = nil
|
||||
|
||||
var onMailSent: ActionHandler? = nil
|
||||
var onError: ErrorHandler? = nil
|
||||
|
||||
func makeCoordinator() -> Coordinator {
|
||||
Coordinator(mailSentHandler: self.onMailSent, errorHandler: self.onError)
|
||||
}
|
||||
|
||||
func makeUIViewController(context: Context) -> some UIViewController {
|
||||
let mailViewController = MFMailComposeViewController()
|
||||
mailViewController.mailComposeDelegate = context.coordinator
|
||||
mailViewController.setToRecipients(self.recipients)
|
||||
mailViewController.setSubject(self.subject)
|
||||
|
||||
if let body {
|
||||
mailViewController.setMessageBody(body, isHTML: false)
|
||||
}
|
||||
|
||||
return mailViewController
|
||||
}
|
||||
|
||||
func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
extension MailComposeView {
|
||||
class Coordinator: NSObject, MFMailComposeViewControllerDelegate {
|
||||
|
||||
let mailSentHandler: ActionHandler?
|
||||
let errorHandler: ErrorHandler?
|
||||
|
||||
init(mailSentHandler: ActionHandler?, errorHandler: ErrorHandler?) {
|
||||
self.mailSentHandler = mailSentHandler
|
||||
self.errorHandler = errorHandler
|
||||
super.init()
|
||||
}
|
||||
|
||||
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
|
||||
if result == .sent, let mailSentHandler {
|
||||
mailSentHandler()
|
||||
} else if result == .failed, let errorHandler, let error {
|
||||
errorHandler(error)
|
||||
}
|
||||
|
||||
controller.dismiss(animated: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user