diff Simoleon/Helpers/CurrencySelector.swift @ 183:d2398f02e1ce

implement unit currency selector
author Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
date Mon, 20 Dec 2021 12:28:16 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Simoleon/Helpers/CurrencySelector.swift	Mon Dec 20 12:28:16 2021 +0100
@@ -0,0 +1,57 @@
+//
+//  CurrencySelector.swift
+//  Simoleon
+//
+//  Created by Dennis Concepción Martín on 8/12/21.
+//
+
+import SwiftUI
+
+enum Selection {
+    case baseCurrency, quoteCurrency
+}
+
+struct CurrencySelector: View {
+    @State private var baseCurrency = SupportedCurrencyResult(code: "EUR", name: "Euro", isCrypto: 0)
+    @State private var quoteCurrency = SupportedCurrencyResult(code: "CHF", name: "Swiss Franc", isCrypto: 0)
+    @State private var showingCurrencyList = false
+    @State private var selecting: Selection = .baseCurrency
+    
+    var body: some View {
+        HStack {
+            Button(action: {
+                selecting = .baseCurrency
+                showingCurrencyList.toggle()
+                
+            }) {
+                RoundedRectangle(cornerRadius: 15)
+                    .foregroundColor(Color(.secondarySystemBackground))
+                    .frame(height: 60)
+                    .overlay(
+                        Text(baseCurrency.code)
+                    )
+            }
+            
+            Button(action: {
+                selecting = .quoteCurrency
+                showingCurrencyList.toggle()
+            }) {
+                RoundedRectangle(cornerRadius: 15)
+                    .foregroundColor(Color(.secondarySystemBackground))
+                    .frame(height: 60)
+                    .overlay(
+                        Text(quoteCurrency.code)
+                    )
+            }
+        }
+        .sheet(isPresented: $showingCurrencyList) {
+            CurrencyList(baseCurrency: $baseCurrency, quoteCurrency: $quoteCurrency, selecting: selecting)
+        }
+    }
+}
+
+struct CurrencySelector_Previews: PreviewProvider {
+    static var previews: some View {
+        CurrencySelector()
+    }
+}