Mercurial > public > simoleon
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) } }