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