// // LoginView.swift // Werkout_ios // // Created by Trey Tartt on 6/25/23. // import SwiftUI struct LoginView: View { @State var email: String = "" @State var password: String = "" @Environment(\.dismiss) var dismiss let completion: (() -> Void) var body: some View { VStack { TextField("Email", text: $email) .textContentType(.username) .autocapitalization(.none) .frame(height: 55) .textFieldStyle(PlainTextFieldStyle()) .padding([.horizontal], 4) .overlay(RoundedRectangle(cornerRadius: 16).stroke(Color(uiColor: .clear))).background(Color(uiColor: .init(red: 255/255, green: 255/255, blue: 255/255, alpha: 1))) .cornerRadius(8) .padding(.top, 25) SecureField("Password", text: $password) .textContentType(.password) .autocapitalization(.none) .frame(height: 55) .textFieldStyle(PlainTextFieldStyle()) .padding([.horizontal], 4) .overlay(RoundedRectangle(cornerRadius: 16).stroke(Color(uiColor: .clear))).background(Color(uiColor: .init(red: 255/255, green: 255/255, blue: 255/255, alpha: 1))) .cornerRadius(8) Button("Login", action: { login() }) .frame(maxWidth: .infinity, alignment: .center) .frame(height: 44) .foregroundColor(.blue) .background(.yellow) .cornerRadius(8) .padding() .frame(maxWidth: .infinity) Spacer() } .padding() .background( Image("icon") .resizable() .edgesIgnoringSafeArea(.all) .scaledToFill() ) } func login() { let postData = [ "email": email, "password": password ] UserStore.shared.login(postData: postData, completion: { success in if success { completion() dismiss() } }) } } struct LoginView_Previews: PreviewProvider { static var previews: some View { LoginView(completion: { }) } }