comparison Simoleon/Helpers/CurrencySelector.swift @ 50:7a6a7c677851

Handle errors with alerts
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Mon, 26 Jul 2021 21:52:15 +0100
parents 75c1a05176f6
children 1303c1e50843
comparison
equal deleted inserted replaced
48:67e76ce661a1 50:7a6a7c677851
12 @Binding var currencyPair: String 12 @Binding var currencyPair: String
13 @Binding var showingCurrencySelector: Bool 13 @Binding var showingCurrencySelector: Bool
14 14
15 @State private var searchCurrency = "" 15 @State private var searchCurrency = ""
16 @State private var showingSubscriptionPaywall = false 16 @State private var showingSubscriptionPaywall = false
17 @State private var alertTitle = ""
18 @State private var alertMessage = ""
19 @State private var showingAlert = false
17 20
18 var body: some View { 21 var body: some View {
19 NavigationView { 22 NavigationView {
20 Form { 23 Form {
21 TextField("Search ...", text: $searchCurrency) 24 TextField("Search ...", text: $searchCurrency)
44 Button(action: { showingCurrencySelector = false }) { 47 Button(action: { showingCurrencySelector = false }) {
45 Text("Cancel", comment: "Button to dismiss currency selector") 48 Text("Cancel", comment: "Button to dismiss currency selector")
46 } 49 }
47 } 50 }
48 } 51 }
52 }
53 .alert(isPresented: $showingAlert) {
54 Alert(title: Text(alertTitle), message: Text(alertMessage), dismissButton: .default(Text("Ok")))
49 } 55 }
50 } 56 }
51 57
52 /* 58 /*
53 If searched currency string is empty: 59 If searched currency string is empty:
84 self.currencyPair = currencyPair 90 self.currencyPair = currencyPair
85 showingCurrencySelector = false 91 showingCurrencySelector = false
86 } else { 92 } else {
87 showingSubscriptionPaywall = true 93 showingSubscriptionPaywall = true
88 } 94 }
95
96 if let error = error as NSError? {
97 alertTitle = error.localizedDescription
98 alertMessage = error.localizedFailureReason ?? ""
99 showingAlert = true
100 }
89 } 101 }
90 #endif 102 #endif
91 } 103 }
92 } 104 }
93 105