diff Simoleon/Conversion.swift @ 24:bda6a55d027a

Add Conversion to Favourites
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Tue, 20 Jul 2021 10:24:21 +0100
parents 699b5bb619db
children 933d9ab04374
line wrap: on
line diff
--- a/Simoleon/Conversion.swift	Tue Jul 20 09:54:41 2021 +0100
+++ b/Simoleon/Conversion.swift	Tue Jul 20 10:24:21 2021 +0100
@@ -9,16 +9,17 @@
 import Alamofire
 
 struct Conversion: View {
-    @Environment(\.managedObjectContext) private var viewContext
-    @FetchRequest(sortDescriptors: []) private var userSettings: FetchedResults<UserSettings>
+    var fetchUserSettings: Bool
+    @State var currencyPair: String
     
-    @State private var currencyPair = "USD/GBP"
     @State private var amountToConvert = "1000"
     @State private var price: Double = 1.00
     @State private var showingConversion = false
     @State private var showingCurrencySelector = false
     @State private var isEditing = false
     
+    @Environment(\.managedObjectContext) private var viewContext
+    @FetchRequest(sortDescriptors: []) private var userSettings: FetchedResults<UserSettings>
     let currencyMetadata: [String: CurrencyMetadataModel] = parseJson("CurrencyMetadata.json")
     
     var body: some View {
@@ -46,7 +47,10 @@
             }
             .padding()
             .onAppear {
-                fetchUserSettings()
+                if fetchUserSettings {
+                    fetchingUserSettings()
+                }
+                
                 request(currencyPair)
             }
             .onChange(of: showingCurrencySelector, perform: { showingCurrencySelector in
@@ -69,7 +73,7 @@
                 }
             }
         }
-        .if(UIDevice.current.userInterfaceIdiom == .phone) { content in
+        .if(UIDevice.current.userInterfaceIdiom == .phone && fetchUserSettings) { content in
             NavigationView { content }
         }
     }
@@ -92,7 +96,7 @@
      1) Fetch default currency from User Settings
      2) Change State var currencyPair
      */
-    private func fetchUserSettings() {
+    private func fetchingUserSettings() {
         if let userSettings = userSettings.first {
             self.currencyPair = userSettings.defaultCurrency ?? "USD/GBP"
         }
@@ -102,6 +106,6 @@
 
 struct Conversion_Previews: PreviewProvider {
     static var previews: some View {
-        Conversion()
+        Conversion(fetchUserSettings: true, currencyPair: "USD/GBP")
     }
 }