forked from AcaMate/AcaMate_iOS
85 lines
2.7 KiB
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()
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|