diff --git a/KkuMulKum/Source/AddMeeting/CreateMeeting/ViewController/CreateMeetingViewController.swift b/KkuMulKum/Source/AddMeeting/CreateMeeting/ViewController/CreateMeetingViewController.swift index 344bd1e3..f683af92 100644 --- a/KkuMulKum/Source/AddMeeting/CreateMeeting/ViewController/CreateMeetingViewController.swift +++ b/KkuMulKum/Source/AddMeeting/CreateMeeting/ViewController/CreateMeetingViewController.swift @@ -86,15 +86,15 @@ private extension CreateMeetingViewController { func setupBinding() { viewModel.inviteCodeState.bind(with: self) { owner, state in switch state { - case .empty, .invalid: - owner.rootView.presentButton.isEnabled = false case .valid: owner.rootView.presentButton.isEnabled = true + case .empty, .invalid: + owner.rootView.presentButton.isEnabled = false } - - owner.viewModel.characterCount.bind(with: self) { owner, count in - owner.rootView.characterLabel.text = count - } + } + + viewModel.characterCount.bind(with: self) { owner, count in + owner.rootView.characterLabel.text = "\(count)/10" } } @@ -121,9 +121,7 @@ private extension CreateMeetingViewController { viewModel.createMeeting(name: viewModel.meetingName.value) DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { - inviteCodePopUpViewController.rootView.setInvitationCodeText( - self.viewModel.inviteCode.value - ) + inviteCodePopUpViewController.rootView.setInvitationCodeText(self.viewModel.inviteCode.value) self.present(inviteCodePopUpViewController, animated: true) } diff --git a/KkuMulKum/Source/AddMeeting/CreateMeeting/ViewModel/CreateMeetingViewModel.swift b/KkuMulKum/Source/AddMeeting/CreateMeeting/ViewModel/CreateMeetingViewModel.swift index 2f96ff7e..4a228780 100644 --- a/KkuMulKum/Source/AddMeeting/CreateMeeting/ViewModel/CreateMeetingViewModel.swift +++ b/KkuMulKum/Source/AddMeeting/CreateMeeting/ViewModel/CreateMeetingViewModel.swift @@ -18,7 +18,6 @@ class CreateMeetingViewModel { // MARK: Property - let isNextButtonEnabled = ObservablePattern(false) let meetingName = ObservablePattern("") let inviteCode = ObservablePattern("") let characterCount = ObservablePattern("0/10") @@ -43,17 +42,15 @@ class CreateMeetingViewModel { extension CreateMeetingViewModel { func validateName(_ name: String) { meetingName.value = name - characterCount.value = "\(name.count)/10" + characterCount.value = String(name.count) - if name.isEmpty { + switch name.count { + case 0: inviteCodeState.value = .empty - isNextButtonEnabled.value = false - } else if name.count > 10 { - inviteCodeState.value = .invalid - isNextButtonEnabled.value = false - } else { + case 1...10: inviteCodeState.value = .valid - isNextButtonEnabled.value = true + default: + inviteCodeState.value = .invalid } }