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)) } } }