Skip to content

Commit

Permalink
Merge pull request #138 from boostcampwm-2024/fix/FixProfileTextField
Browse files Browse the repository at this point in the history
[Fix] 닉네임 설정 시 공백 제거 로직 추가 및 프로필 설정 화면 재 진입 시 설정된 프로필 로드
  • Loading branch information
ekrud99 authored Dec 2, 2024
2 parents 59d2b22 + d9a9487 commit e7b8e1c
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,11 @@ final class ProfileViewController: UIViewController {
private func updateProfileState(nickname: String) {
nicknameCountLabel.text = "\(nickname.count)/\(nicknameMaxCount)"
nicknameTextField.text = nickname
if !nickname.isEmpty {
let trimmedNickname = nickname.trimmingCharacters(in: .whitespacesAndNewlines)

if !nickname.isEmpty,
!trimmedNickname.isEmpty
{
completeButton.isEnabled = true
completeButton.tintColor = .airplainBlue
} else {
Expand All @@ -216,10 +220,18 @@ final class ProfileViewController: UIViewController {
}

@objc private func dismissView() {
viewModel.action(input: .resetProfile)
dismiss(animated: true)
}

@objc private func saveProfile() {
guard
let completedNickname = nicknameTextField
.text?
.trimmingCharacters(in: .whitespacesAndNewlines)
else { return }

viewModel.action(input: .updateProfileNickname(nickname: completedNickname))
viewModel.action(input: .saveProfile)
dismiss(animated: true)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public final class ProfileViewModel: ViewModel {
case updateProfileNickname(nickname: String)
case updateProfileIcon(profileIcon: ProfileIcon)
case saveProfile
case resetProfile
}

struct Output {
Expand All @@ -33,9 +34,14 @@ public final class ProfileViewModel: ViewModel {

func action(input: Input) {
switch input {
case .updateProfileNickname(let nickname): updateProfileNickname(nickname: nickname)
case .updateProfileIcon(let profileIcon): updateProfileIcon(profileIcon: profileIcon)
case .saveProfile: saveProfile()
case .updateProfileNickname(let nickname):
updateProfileNickname(nickname: nickname)
case .updateProfileIcon(let profileIcon):
updateProfileIcon(profileIcon: profileIcon)
case .saveProfile:
saveProfile()
case .resetProfile:
resetProfile()
}
}

Expand All @@ -52,4 +58,8 @@ public final class ProfileViewModel: ViewModel {
private func saveProfile() {
profileUseCase.saveProfile(profile: profileSubject.value)
}

private func resetProfile() {
profileSubject.value = profileUseCase.loadProfile()
}
}

0 comments on commit e7b8e1c

Please sign in to comment.