diff Simoleon/ConversionView.swift @ 160:0c589138a6f3

Implement Conversion Box
author Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
date Sun, 29 Aug 2021 19:04:34 +0100
parents 35628bac01f5
children 3913aff613e8
line wrap: on
line diff
--- a/Simoleon/ConversionView.swift	Sat Aug 28 19:18:50 2021 +0100
+++ b/Simoleon/ConversionView.swift	Sun Aug 29 19:04:34 2021 +0100
@@ -10,62 +10,31 @@
 
 struct ConversionView: View {
     var showNavigationView: Bool?
-    @State var currencyPair: CurrencyPairModel
-    
-    // Conversion
-    @State private var showingConversion = false
-    @State private var amountIsEditing = false
-    @State private var amountToConvert = ""
-    @State private var price: Double = 0
+    @StateObject var currencyPair = CurrencyPair()
     
     var body: some View {
         ScrollView(showsIndicators: false) {
-            VStack(alignment: .leading) {
+            VStack(alignment: .leading, spacing: 20) {
                 HStack {
                     CurrencySelector(currencyPair: currencyPair)
                     FavoriteButton(currencyPair: currencyPair)
                 }
+                
+                ConversionBox(currencyPair: currencyPair)
+                    .padding(.top)
             }
             .padding()
         }
-        .onAppear(perform: createUrlAndRequest)
         .navigationTitle("Convert")
-        .toolbar {
-            ToolbarItem(placement: .navigationBarTrailing) {
-                if amountIsEditing {
-                    Button(action: {
-                        UIApplication.shared.dismissKeyboard()
-                        amountIsEditing = false
-                    }) {
-                        Text("Done")
-                    }
-                }
-            }
-        }
         .if(UIDevice.current.userInterfaceIdiom == .phone && showNavigationView ?? true) { content in
             NavigationView { content }
         }
     }
-    
-    private func createUrlAndRequest() {
-        showingConversion = false
-        let baseUrl = readConfigVariable(withKey: "API_URL")!
-        let apiKey = readConfigVariable(withKey: "API_KEY")!
-        let currencyPair = "\(currencyPair.baseSymbol)/\(currencyPair.quoteSymbol)"
-        let url = "\(baseUrl)quotes?pairs=\(currencyPair)&api_key=\(apiKey)"
-        
-        httpRequest(url: url, model: [CurrencyQuoteModel].self) { response in
-            if let price = response.first?.price {
-                self.price = price
-                showingConversion =  true
-            }
-        }
-    }
 }
 
 
 struct ConversionView_Previews: PreviewProvider {
     static var previews: some View {
-        ConversionView(showNavigationView: true, currencyPair: CurrencyPairModel(baseSymbol: "USD", quoteSymbol: "EUR"))
+        ConversionView(showNavigationView: true)
     }
 }