Mercurial > public > simoleon
comparison Simoleon/Conversion.swift @ 23:699b5bb619db
UserSettings CoreData implemented
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Tue, 20 Jul 2021 09:54:41 +0100 |
parents | 3596690dda73 |
children | bda6a55d027a |
comparison
equal
deleted
inserted
replaced
22:3596690dda73 | 23:699b5bb619db |
---|---|
7 | 7 |
8 import SwiftUI | 8 import SwiftUI |
9 import Alamofire | 9 import Alamofire |
10 | 10 |
11 struct Conversion: View { | 11 struct Conversion: View { |
12 @Environment(\.managedObjectContext) private var viewContext | |
13 @FetchRequest(sortDescriptors: []) private var userSettings: FetchedResults<UserSettings> | |
14 | |
12 @State private var currencyPair = "USD/GBP" | 15 @State private var currencyPair = "USD/GBP" |
13 @State private var amountToConvert = "1000" | 16 @State private var amountToConvert = "1000" |
14 @State private var price: Double = 1.00 | 17 @State private var price: Double = 1.00 |
15 @State private var showingConversion = false | 18 @State private var showingConversion = false |
16 @State private var showingCurrencySelector = false | 19 @State private var showingCurrencySelector = false |
40 showingCurrencySelector: $showingCurrencySelector, | 43 showingCurrencySelector: $showingCurrencySelector, |
41 isEditing: $isEditing | 44 isEditing: $isEditing |
42 ) | 45 ) |
43 } | 46 } |
44 .padding() | 47 .padding() |
45 .onAppear { request(currencyPair) } | 48 .onAppear { |
49 fetchUserSettings() | |
50 request(currencyPair) | |
51 } | |
46 .onChange(of: showingCurrencySelector, perform: { showingCurrencySelector in | 52 .onChange(of: showingCurrencySelector, perform: { showingCurrencySelector in |
47 if !showingCurrencySelector { | 53 if !showingCurrencySelector { |
48 request(currencyPair) | 54 request(currencyPair) |
49 } | 55 } |
50 }) | 56 }) |
79 } else { | 85 } else { |
80 // Handle error | 86 // Handle error |
81 } | 87 } |
82 } | 88 } |
83 } | 89 } |
90 | |
91 /* | |
92 1) Fetch default currency from User Settings | |
93 2) Change State var currencyPair | |
94 */ | |
95 private func fetchUserSettings() { | |
96 if let userSettings = userSettings.first { | |
97 self.currencyPair = userSettings.defaultCurrency ?? "USD/GBP" | |
98 } | |
99 } | |
84 } | 100 } |
85 | 101 |
86 | 102 |
87 struct Conversion_Previews: PreviewProvider { | 103 struct Conversion_Previews: PreviewProvider { |
88 static var previews: some View { | 104 static var previews: some View { |