// // FindPasswordView.swift // SodaLive // // Created by klaus on 2023/08/09. // import SwiftUI struct FindPasswordView: View { @StateObject var viewModel = FindPasswordViewModel() @StateObject var keyboardHandler = KeyboardHandler() @FocusState private var isFocused: Bool var body: some View { BaseView(isLoading: $viewModel.isLoading) { GeometryReader { proxy in VStack(spacing: 0) { DetailNavigationBar(title: I18n.FindPassword.title) ScrollView(.vertical, showsIndicators: false) { VStack(spacing: 0) { Text(I18n.FindPassword.description1) .appFont(size: 16, weight: .bold) .foregroundColor(Color(hex: "eeeeee")) .multilineTextAlignment(.center) .lineSpacing(6) .padding(.top, 40) .padding(.horizontal, 26.7) Text(I18n.FindPassword.description2) .appFont(size: 12, weight: .medium) .foregroundColor(Color(hex: "909090")) .multilineTextAlignment(.center) .lineSpacing(6) .padding(.top, 40) .padding(.horizontal, 26.7) TextField(I18n.FindPassword.emailPlaceholder, text: $viewModel.email) .focused($isFocused) .autocapitalization(.none) .disableAutocorrection(true) .appFont(size: 15, weight: .medium) .foregroundColor(.grayee) .keyboardType(.emailAddress) .padding(.vertical, 18) .padding(.horizontal, 13.3) .frame(height: 56) .background(RoundedRectangle(cornerRadius: 6.7).fill(Color.gray33.opacity(0.7))) .padding(.top, 40) .padding(.horizontal, 26.7) .onTapGesture { isFocused = true } Text(I18n.FindPassword.submit) .appFont(size: 18.3, weight: .bold) .foregroundColor(Color.white) .frame(maxWidth: proxy.size.width - 26.7) .padding(.vertical, 16) .background(Color.button) .cornerRadius(6.7) .padding(.top, 60) .onTapGesture { viewModel.findPassword() } HStack(spacing: 13.3) { Image("ic_headphones_blue") Text(I18n.FindPassword.contactSupport) .appFont(size: 13.3, weight: .medium) .foregroundColor(.button) } .padding(.vertical, 10.7) .padding(.horizontal, 18.7) .overlay( RoundedRectangle(cornerRadius: 8) .stroke(Color.button, lineWidth: 1) ) .padding(.top, 93) .onTapGesture { UIApplication.shared.open(URL(string: "http://pf.kakao.com/_lkxgxhG/chat")!) } } } } .onAppear { isFocused = true } } } .sodaToast(isPresented: $viewModel.isShowPopup, message: viewModel.errorMessage, autohideIn: 2) } } struct FindPasswordView_Previews: PreviewProvider { static var previews: some View { FindPasswordView() } }