//
//  FindPasswordView.swift
//  SodaLive
//
//  Created by klaus on 2023/08/09.
//

import SwiftUI

struct FindPasswordView: View {
    
    @StateObject var viewModel = FindPasswordViewModel()
    @StateObject var keyboardHandler = KeyboardHandler()
    
    var body: some View {
        BaseView(isLoading: $viewModel.isLoading) {
            GeometryReader { proxy in
                VStack(spacing: 0) {
                    DetailNavigationBar(title: "비밀번호 재설정")
                    
                    ScrollView(.vertical, showsIndicators: false) {
                        VStack(spacing: 0) {
                            Text("회원가입한 이메일 주소로\n임시 비밀번호를 보내드립니다.")
                                .font(.custom(Font.bold.rawValue, size: 16))
                                .foregroundColor(Color(hex: "eeeeee"))
                                .multilineTextAlignment(.center)
                                .lineSpacing(6)
                                .padding(.top, 40)
                                .padding(.horizontal, 26.7)
                            
                            Text("임시 비밀번호로 로그인 후, 마이페이지 > 프로필 설정에서\n비밀번호를 변경하고 이용하세요.")
                                .font(.custom(Font.medium.rawValue, size: 12))
                                .foregroundColor(Color(hex: "909090"))
                                .multilineTextAlignment(.center)
                                .lineSpacing(6)
                                .padding(.top, 40)
                                .padding(.horizontal, 26.7)
                            
                            UserTextField(
                                title: "이메일",
                                hint: "이메일 주소를 입력해 주세요",
                                isSecure: false,
                                variable: $viewModel.email,
                                keyboardType: .emailAddress
                            )
                            .padding(.top, 40)
                            .padding(.horizontal, 26.7)
                            
                            Text("임시 비밀번호 받기")
                                .font(.custom(Font.bold.rawValue, size: 18.3))
                                .foregroundColor(Color.white)
                                .frame(maxWidth: proxy.size.width - 26.7)
                                .padding(.vertical, 16)
                                .background(Color(hex: "9970ff"))
                                .cornerRadius(6.7)
                                .padding(.top, 60)
                                .onTapGesture { viewModel.findPassword() }
                            
                            HStack(spacing: 13.3) {
                                Image("ic_headphones_purple")
                                
                                Text("고객센터로 문의하기")
                                    .font(.custom(Font.medium.rawValue, size: 13.3))
                                    .foregroundColor(Color(hex: "9970ff"))
                            }
                            .padding(.vertical, 10.7)
                            .padding(.horizontal, 18.7)
                            .overlay(
                                RoundedRectangle(cornerRadius: 8)
                                    .stroke(Color(hex: "9970ff"), lineWidth: 1)
                            )
                            .padding(.top, 93)
                            .onTapGesture {
                                UIApplication.shared.open(URL(string: "http://pf.kakao.com/_lkxgxhG/chat")!)
                            }
                        }
                    }
                }
            }
        }
        .popup(isPresented: $viewModel.isShowPopup, type: .toast, position: .bottom, autohideIn: 2) {
            HStack {
                Spacer()
                Text(viewModel.errorMessage)
                    .padding(.vertical, 13.3)
                    .padding(.horizontal, 13.3)
                    .frame(width: screenSize().width - 66.7, alignment: .center)
                    .font(.custom(Font.medium.rawValue, size: 12))
                    .background(Color(hex: "9970ff"))
                    .foregroundColor(Color.white)
                    .multilineTextAlignment(.leading)
                    .cornerRadius(20)
                    .padding(.bottom, 66.7)
                Spacer()
            }
        }
    }
}

struct FindPasswordView_Previews: PreviewProvider {
    static var previews: some View {
        FindPasswordView()
    }
}