AutoCat2/Shared/Extensions/Alert.swift

29 lines
745 B
Swift

import Foundation
import SwiftUI
enum AlertMessage: Identifiable {
case info(title: String, body: String)
case error(error: Error)
var id: Int {
switch self {
case .info(let title, let body):
return title.hashValue + body.hashValue
case .error(let error):
return error.localizedDescription.hashValue
}
}
}
extension Alert {
init(_ message: AlertMessage) {
switch message {
case .info(let title, let body):
self.init(title: Text(title), message: Text(body))
case .error(let error):
let msg = (error as NSError).displayMessage
self.init(title: Text(msg.title), message: Text(msg.body))
}
}
}