AcaMate_iOS/AcaMate/3. ViewModel/RegisterViewModel.swift

85 lines
2.7 KiB
Swift

//
// RegisterViewModel.swift
// AcaMate
//
// Created by TAnine on 3/24/25.
//
import SwiftUI
import Combine
class RegisterViewModel: ObservableObject {
private var cancellables = Set<AnyCancellable>()
private let appVM: AppViewModel
private let responseValue: (SNSLoginType, String)
init(_ appVM: AppViewModel, type: SNSLoginType, snsID: String) {
self.appVM = appVM
self.responseValue = (type, snsID)
}
let addressBtnID = UUID()
let registerBtnID = UUID()
@Published var selectDate: Date = {
let calendar = Calendar.current
return calendar.date(byAdding: .year, value: 0, to: Date()) ?? Date()
}() {
didSet {
if selectDate != oldValue {
changeDate = true
}
}
}
@Published var changeDate: Bool = false
@Published var nameText: String = ""
@Published var emailFrontText: String = ""
@Published var emailTailText: String = ""
@Published var numberHead: String = ""
@Published var phoneTextSet: (String,String,String) = ("","","")
@Published var addressText: String = "주소 입력"
@Published var addrDetailText: String = ""
let numberHeadList = ["010","011","016","017","018","019"]
let emailTailList = ["gmail.com",
"naver.com",
"daum.net",
"hanmail.net",
"nate.com",
"outlook.com",
"icloud.com",
"kakao.com",
"yahoo.com",
"protonmail.com",
"직접 입력"]
func registerUser() {
//
if nameText != "" && emailFrontText != "" && emailTailText != "" && phoneTextSet.0 != "" && phoneTextSet.1 != "" && phoneTextSet.2 != "" {
if !changeDate || addressText == "주소 입력" {
appVM.alertData = AlertData(
title: "알림",
body: "\(changeDate ? "":"[생일]")\((addressText != "주소 입력") ? "":"[주소]")의 내용이 없습니다.\n 계속해서 진행할까요?",
button: [ButtonType(name: "확인", role: .cancel, function: nil)])
appVM.showAlert.toggle()
//
} else {
//
}
}
else {
appVM.alertData = AlertData(
title: "경고", body: "필수 입력 사항이 누락되었습니다.",
button: [ButtonType(name: "확인", role: .cancel, function: nil)])
appVM.showAlert.toggle()
}
}
}