AcaMate_iOS/AcaMate/2. Model/Alert.swift
2025-03-24 09:03:27 +09:00

110 lines
4.0 KiB
Swift

//
// Alert.swift
// AcaMate
//
// Created by Sean Kim on 12/2/24.
//
import SwiftUI
import Combine
struct AlertData {
var title: String
var body: String
var button: [ButtonType]
init(title: String = "알림", body: String, button: [ButtonType] = [.init(name: "확인", role: .none, function: nil)]) {
self.title = title
self.body = body
self.button = button
}
}
struct ButtonType {
var name: String
var role: ButtonRole?
var function: (()->())?
}
struct SetAlertData {
func setTest() -> AlertData {
return AlertData(title: "TEST", body: "TEST용 알럿 입니다.",
button: [
ButtonType(name: "테스트", role: .cancel,
function: {
printLog("테스트 중입니다.")
})
])
}
///
func setForceUpdate(action: CurrentValueSubject<String?, Never>) -> AlertData {
return AlertData(title: "업데이트 안내",
body: """
앱 최신 버전이 나왔습니다.
앱을 종료 후 업데이트를 해주세요.
""",
button: [
ButtonType(name: "업데이트 하기", role: .none,
function: {
action.send("updateNow")
})
])
}
///
func setSelectUpdate (action: CurrentValueSubject<String?, Never>) -> AlertData {
return AlertData(title: "업데이트 안내",
body: """
앱 최신 버전이 새로 나왔습니다.
지금 업데이트 하시겠어요?
""",
button: [
ButtonType(name: "지금 업데이트", role: .cancel,
function: {
action.send("updateNow")
}),
ButtonType(name: "나중에", role: .none,
function: {
action.send("updateLater")
}),
])
}
///
func setErrorNetwork() -> AlertData {
return AlertData(title: "네트워크 오류", body: "네트워크가 불안정합니다.\n확인 후 다시 시도해주세요.",
button: [
ButtonType(name: "확인", role: .cancel, function: nil)
])
}
/// -
func setServerError(action: CurrentValueSubject<String?, Never>) -> AlertData {
return AlertData(title: "시스템 오류", body: "시스템이 정상적이지 않습니다. \n확인 후 다시 시도해주세요.",
button: [
ButtonType(name: "확인", role: .cancel,
function: {
action.send("exit")
})
])
}
///
func setErrorLogin() -> AlertData {
return AlertData(title: "로그인",
body: """
ID 와 비밀번호가 올바르지 않습니다.
확인 후 다시 시도해주세요.
""",
button: [
ButtonType(name: "확인", role: .cancel, function: nil)
])
}
}