diff --git a/KkuMulKum/Source/Promise/ReadyStatus/ViewController/ReadyStatusViewController.swift b/KkuMulKum/Source/Promise/ReadyStatus/ViewController/ReadyStatusViewController.swift index fd676bb0..cfcbfb50 100644 --- a/KkuMulKum/Source/Promise/ReadyStatus/ViewController/ReadyStatusViewController.swift +++ b/KkuMulKum/Source/Promise/ReadyStatus/ViewController/ReadyStatusViewController.swift @@ -156,7 +156,6 @@ extension ReadyStatusViewController: UICollectionViewDataSource { cell.readyStatusButton.setupButton("이동중", .move) case "준비중": cell.readyStatusButton.setupButton("준비중", .ready) - cell.readyStatusButton.layer.borderWidth = 0 default: cell.readyStatusButton.setupButton("꾸물중", .none) } diff --git a/KkuMulKum/Source/Promise/ReadyStatus/ViewModel/ReadyStatusViewModel.swift b/KkuMulKum/Source/Promise/ReadyStatus/ViewModel/ReadyStatusViewModel.swift index 501885a1..e9b58ac9 100644 --- a/KkuMulKum/Source/Promise/ReadyStatus/ViewModel/ReadyStatusViewModel.swift +++ b/KkuMulKum/Source/Promise/ReadyStatus/ViewModel/ReadyStatusViewModel.swift @@ -37,7 +37,7 @@ class ReadyStatusViewModel { let myReadyProgressStatus = ObservablePattern(.none) // 꾸물거림 여부 - let isLate = ObservablePattern(false) + var isLate = ObservablePattern(false) // 우리들의 준비 현황 스택 뷰에 들어갈 정보들 let participantInfos = ObservablePattern<[Participant]>([]) @@ -126,6 +126,29 @@ extension ReadyStatusViewModel { self.moveStartTime.value = timeFormatter.string(from: moveStartTime) print("이동 시작 시간: \(self.moveStartTime.value)") } + + func checkLate(settingTime: String, realTime: String) { + let dateFormatter = DateFormatter() + dateFormatter.locale = Locale(identifier: "ko_KR") + dateFormatter.dateFormat = "HH시 mm분" + + let readyStartDate = dateFormatter.date(from: settingTime) + + dateFormatter.dateFormat = "a h:mm" + + let preparationStartDate = dateFormatter.date(from: realTime) + + if let readyStartDate = readyStartDate, let preparationStartDate = preparationStartDate { + if preparationStartDate.compare(readyStartDate) == .orderedDescending { + self.isLate.value = true + } else { + self.isLate.value = true + } + } else { + self.isLate.value = false + } + } + func fetchMyReadyStatus() { Task { @@ -175,6 +198,12 @@ extension ReadyStatusViewModel { else { return } + DispatchQueue.main.async { + self.checkLate( + settingTime: self.moveStartTime.value, + realTime: self.myReadyStatus.value?.departureAt ?? "" + ) + } } } } @@ -191,6 +220,12 @@ extension ReadyStatusViewModel { else { return } + DispatchQueue.main.async { + self.checkLate( + settingTime: self.moveTime.value, + realTime: self.myReadyStatus.value?.preparationStartAt ?? "" + ) + } } } }