forked from AcaMate/AcaMate_iOS
[🐛] 서버 연결 안될 시 처리하는 방법 수정
This commit is contained in:
parent
aa55b5463d
commit
46be2a0299
Binary file not shown.
|
@ -9,10 +9,10 @@ import SwiftUI
|
||||||
|
|
||||||
struct SelectAcademyView: View {
|
struct SelectAcademyView: View {
|
||||||
@EnvironmentObject var appVM: AppViewModel
|
@EnvironmentObject var appVM: AppViewModel
|
||||||
@StateObject var saVM: SelectAcademyViewModel
|
@StateObject var vm: SelectAcademyViewModel
|
||||||
|
|
||||||
init(_ appVM: AppViewModel) {
|
init(_ appVM: AppViewModel) {
|
||||||
_saVM = StateObject(wrappedValue: SelectAcademyViewModel(appVM))
|
_vm = StateObject(wrappedValue: SelectAcademyViewModel(appVM))
|
||||||
}
|
}
|
||||||
|
|
||||||
@State private var scrollOffset: CGPoint = .zero
|
@State private var scrollOffset: CGPoint = .zero
|
||||||
|
@ -33,11 +33,12 @@ struct SelectAcademyView: View {
|
||||||
.foregroundStyle(Color(.Text.detail))
|
.foregroundStyle(Color(.Text.detail))
|
||||||
Spacer(minLength: 1)
|
Spacer(minLength: 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
//MARK: TO-DO
|
//MARK: TO-DO
|
||||||
// 문제
|
// 문제
|
||||||
// 1. txf 클릭시 겉 뷰가 작아지는 현상
|
// 1. txf 클릭시 겉 뷰가 작아지는 현상
|
||||||
// 2. 코드 입력시 버튼 나타나게 하기
|
// 2. 코드 입력시 버튼 나타나게 하기
|
||||||
CustomTextField(placeholder: "학원 코드 입력", text: $saVM.academyCode)
|
CustomTextField(placeholder: "학원 코드 입력", text: $vm.academyCode)
|
||||||
.frame(maxWidth: .infinity,maxHeight: 48)
|
.frame(maxWidth: .infinity,maxHeight: 48)
|
||||||
.padding(EdgeInsets(top: 0, leading: 20, bottom: 0, trailing: 20))
|
.padding(EdgeInsets(top: 0, leading: 20, bottom: 0, trailing: 20))
|
||||||
.background {
|
.background {
|
||||||
|
@ -55,11 +56,12 @@ struct SelectAcademyView: View {
|
||||||
Spacer(minLength: 1)
|
Spacer(minLength: 1)
|
||||||
}
|
}
|
||||||
.padding(EdgeInsets(top: 12, leading: 24, bottom: 0, trailing: 24))
|
.padding(EdgeInsets(top: 12, leading: 24, bottom: 0, trailing: 24))
|
||||||
|
if vm.academyList.count > 0 {
|
||||||
OffsetObservableScrollView(showsIndicators: false, scrollOffset: $scrollOffset) { proxy in
|
OffsetObservableScrollView(showsIndicators: false, scrollOffset: $scrollOffset) { proxy in
|
||||||
VStack(spacing: 12) {
|
VStack(spacing: 12) {
|
||||||
ForEach(Array(saVM.academyList.enumerated()), id: \.offset) { index, academy in
|
ForEach(Array(vm.academyList.enumerated()), id: \.offset) { index, academy in
|
||||||
AcademyCell(numbering: index, academy: saVM.academyList[index],selectNum: $saVM.selectNum){
|
AcademyCell(numbering: index, academy: vm.academyList[index],selectNum: $vm.selectNum){
|
||||||
saVM.toggleSelection(for: index)
|
vm.toggleSelection(for: index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -67,6 +69,11 @@ struct SelectAcademyView: View {
|
||||||
}
|
}
|
||||||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
EmptyBoxView(title: "등록된 학원이 없습니다.")
|
||||||
|
.padding(EdgeInsets(top: 0, leading: 24, bottom: 0, trailing: 24))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Spacer(minLength: 1)
|
Spacer(minLength: 1)
|
||||||
|
|
||||||
|
@ -82,12 +89,12 @@ struct SelectAcademyView: View {
|
||||||
}
|
}
|
||||||
.frame(height: 56)
|
.frame(height: 56)
|
||||||
}
|
}
|
||||||
.opacity(saVM.selectNum >= 0 ? 1 : 0)
|
.opacity(vm.selectNum >= 0 ? 1 : 0)
|
||||||
.padding(EdgeInsets(top: 12, leading: 24, bottom: 12, trailing: 24))
|
.padding(EdgeInsets(top: 12, leading: 24, bottom: 12, trailing: 24))
|
||||||
|
|
||||||
}
|
}
|
||||||
.onAppear {
|
.onAppear {
|
||||||
saVM.loadAcademy()
|
vm.loadAcademy()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,6 +88,7 @@ struct SetAlertData {
|
||||||
button: [
|
button: [
|
||||||
ButtonType(name: "확인", role: .cancel,
|
ButtonType(name: "확인", role: .cancel,
|
||||||
function: {
|
function: {
|
||||||
|
printLog("alertAction 'exit' send 실행됨")
|
||||||
action.send("exit")
|
action.send("exit")
|
||||||
})
|
})
|
||||||
])
|
])
|
||||||
|
|
|
@ -8,12 +8,34 @@
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
enum UserType: String {
|
enum UserType: String {
|
||||||
case Student = "S"
|
case Admin
|
||||||
case Parent = "P"
|
case Employee
|
||||||
case Teacher = "T"
|
case Student
|
||||||
case Admin = "A"
|
case Teacher
|
||||||
case Employee = "E"
|
case Parent
|
||||||
case ETC = "V"
|
case ETC
|
||||||
|
|
||||||
|
var code: String {
|
||||||
|
switch self {
|
||||||
|
case .Admin: return "UT00"
|
||||||
|
case .Employee: return "UT01"
|
||||||
|
case .Student: return "UT02"
|
||||||
|
case .Teacher: return "UT03"
|
||||||
|
case .Parent: return "UT04"
|
||||||
|
case .ETC: return "UT05"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var name: String {
|
||||||
|
switch self {
|
||||||
|
case .Admin: return "A"
|
||||||
|
case .Employee: return "E"
|
||||||
|
case .Student: return "S"
|
||||||
|
case .Teacher: return "T"
|
||||||
|
case .Parent: return "P"
|
||||||
|
case .ETC: return "V"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct SummaryUser {
|
struct SummaryUser {
|
||||||
|
|
|
@ -21,18 +21,19 @@ class IntroViewModel: ObservableObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
func appStart() {
|
func appStart() {
|
||||||
//#if LOCAL
|
|
||||||
// pathName = .Login
|
|
||||||
//#else
|
|
||||||
subscribeAlertAction()
|
subscribeAlertAction()
|
||||||
searchHeader()
|
searchHeader()
|
||||||
.flatMap { success -> Future<VersionData, Error> in
|
.flatMap { success -> Future<VersionData, Error> in
|
||||||
return self.loadVersion()
|
return self.loadVersion()
|
||||||
}
|
}
|
||||||
.sink { completion in
|
.sink { [weak self] completion in
|
||||||
|
guard let self = self else {return}
|
||||||
switch completion {
|
switch completion {
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
|
// 만약 여기서 에러가 난다면 서버에 문제가 있다는 것
|
||||||
printLog(error)
|
printLog(error)
|
||||||
|
self.appVM.alertData = SetAlertData().setServerError(action: appVM.alertAction)
|
||||||
|
self.appVM.showAlert.toggle()
|
||||||
case .finished: break
|
case .finished: break
|
||||||
}
|
}
|
||||||
} receiveValue: { [weak self] version in
|
} receiveValue: { [weak self] version in
|
||||||
|
@ -81,8 +82,6 @@ class IntroViewModel: ObservableObject {
|
||||||
let request = APIRequest(path: "/api/v1/in/app",
|
let request = APIRequest(path: "/api/v1/in/app",
|
||||||
parameters: ["type": "I", "specific": deviceId, "project": bundleId],
|
parameters: ["type": "I", "specific": deviceId, "project": bundleId],
|
||||||
decoding: APIResponse<Header>.self)
|
decoding: APIResponse<Header>.self)
|
||||||
|
|
||||||
|
|
||||||
appVM.apiManager.loadAPIData(request)
|
appVM.apiManager.loadAPIData(request)
|
||||||
.sink { completion in
|
.sink { completion in
|
||||||
switch completion {
|
switch completion {
|
||||||
|
|
|
@ -68,10 +68,9 @@ class RegisterViewModel: ObservableObject {
|
||||||
|
|
||||||
param["name"] = "\(nameText)"
|
param["name"] = "\(nameText)"
|
||||||
if changeDate { param["birth"] = "\(selectDate.convertString("yyyy-MM-dd"))"}
|
if changeDate { param["birth"] = "\(selectDate.convertString("yyyy-MM-dd"))"}
|
||||||
param["type"] = "UT02"
|
param["type"] = UserType.ETC.code //"UT05" // 일반 유저
|
||||||
|
|
||||||
if let deviceId = await UIDevice.current.identifierForVendor?.uuidString,
|
if let deviceId = await UIDevice.current.identifierForVendor?.uuidString {
|
||||||
let bundleId = Bundle.main.bundleIdentifier {
|
|
||||||
param["device_id"] = "\(deviceId)"
|
param["device_id"] = "\(deviceId)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user