From bdfb6b373bdc040ef235be2ec594835121a85dc4 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkk669@users.noreply.github.com> Date: Sun, 27 Sep 2020 19:09:08 +0900 Subject: [PATCH] Show an alert if an error occurs Fixes #4 --- DNSecure/ContentView.swift | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/DNSecure/ContentView.swift b/DNSecure/ContentView.swift index 8b7ce1a..d217634 100644 --- a/DNSecure/ContentView.swift +++ b/DNSecure/ContentView.swift @@ -13,6 +13,9 @@ struct ContentView { @AppStorage("usedID") var usedID: String? @State var isEnabled = false @State var selection: Int? + @State var alertIsPresented = false + @State var alertTitle = "" + @State var alertMessage = "" func addNewDoTServer() { self.servers.append( @@ -39,6 +42,7 @@ struct ContentView { manager.loadFromPreferences { if let err = $0 { logger.error("\(err.localizedDescription)") + self.alert("Load Error", err.localizedDescription) } else { self.isEnabled = manager.isEnabled } @@ -50,6 +54,7 @@ struct ContentView { manager.loadFromPreferences { loadError in if let loadError = loadError { logger.error("\(loadError.localizedDescription)") + self.alert("Load Error", loadError.localizedDescription) return } manager.dnsSettings = self.usedID @@ -60,12 +65,19 @@ struct ContentView { manager.saveToPreferences { saveError in if let saveError = saveError { logger.error("\(saveError.localizedDescription)") + self.alert("Save Error", saveError.localizedDescription) return } logger.debug("DNS settings are saved") } } } + + func alert(_ title: String, _ message: String) { + self.alertTitle = title + self.alertMessage = message + self.alertIsPresented = true + } } extension ContentView: View { @@ -150,6 +162,12 @@ extension ContentView: View { } } } + .alert(isPresented: self.$alertIsPresented) { + Alert( + title: Text(self.alertTitle), + message: Text(self.alertMessage) + ) + } } } }