Mercurial > public > simoleon
view Simoleon/ConversionView.swift @ 157:8c3bbd640103
Implement Currency Selector
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Sat, 28 Aug 2021 11:15:41 +0100 |
parents | |
children | 35628bac01f5 |
line wrap: on
line source
// // ConversionView.swift // Simoleon // // Created by Dennis Concepción Martín on 18/07/2021. // import SwiftUI import Purchases 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 var body: some View { ScrollView(showsIndicators: false) { VStack(alignment: .leading) { CurrencySelector(currencyPair: currencyPair) } .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() // } //}