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 {