Skip to content

Commit eb906a2

Browse files
committed
feat: LoginViewModel 내 디버그 모드 전용 로직 추가
1 parent 85c5b7c commit eb906a2

1 file changed

Lines changed: 40 additions & 40 deletions

File tree

  • Prezel/feature/login/impl/src/main/java/com/team/prezel/feature/login/impl/landing

Prezel/feature/login/impl/src/main/java/com/team/prezel/feature/login/impl/landing/LoginViewModel.kt

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,57 +21,57 @@ import javax.inject.Inject
2121

2222
@HiltViewModel
2323
internal class LoginViewModel
24-
@Inject
25-
constructor() : ViewModel() {
26-
private val _uiState = MutableStateFlow(LoginUiState())
27-
val uiState: StateFlow<LoginUiState> = _uiState
28-
private val currentState: LoginUiState
29-
get() = uiState.value
24+
@Inject
25+
constructor() : ViewModel() {
26+
private val _uiState = MutableStateFlow(LoginUiState())
27+
val uiState: StateFlow<LoginUiState> = _uiState
28+
private val currentState: LoginUiState
29+
get() = uiState.value
3030

31-
private val _uiEffect = Channel<LoginUiEffect>()
32-
val uiEffect: Flow<LoginUiEffect> = _uiEffect.receiveAsFlow()
31+
private val _uiEffect = Channel<LoginUiEffect>()
32+
val uiEffect: Flow<LoginUiEffect> = _uiEffect.receiveAsFlow()
3333

34-
fun onIntent(intent: LoginUiIntent) {
35-
when (intent) {
36-
is LoginUiIntent.OnClickLogin -> handleClickLogin(provider = intent.provider)
37-
is LoginUiIntent.OnLoginResult -> handleLoginResult(result = intent.result)
34+
fun onIntent(intent: LoginUiIntent) {
35+
when (intent) {
36+
is LoginUiIntent.OnClickLogin -> handleClickLogin(provider = intent.provider)
37+
is LoginUiIntent.OnLoginResult -> handleLoginResult(result = intent.result)
38+
}
3839
}
39-
}
4040

41-
private fun update(reducer: LoginUiState.() -> LoginUiState) {
42-
_uiState.update(reducer)
43-
}
41+
private fun update(reducer: LoginUiState.() -> LoginUiState) {
42+
_uiState.update(reducer)
43+
}
4444

45-
private fun handleClickLogin(provider: AuthProvider) {
46-
if (currentState.isLoading) return
45+
private fun handleClickLogin(provider: AuthProvider) {
46+
if (currentState.isLoading) return
4747

48-
viewModelScope.launch {
49-
update { copy(isLoading = true) }
48+
viewModelScope.launch {
49+
update { copy(isLoading = true) }
5050

51-
// todo: MVP 개발 완료 후 해당 조건 제거
52-
if (BuildConfig.DEBUG) {
53-
_uiEffect.send(LoginUiEffect.NavigateToTerms)
54-
} else {
55-
_uiEffect.send(LoginUiEffect.LaunchLogin(provider = provider))
51+
// todo: MVP 개발 완료 후 해당 조건 제거
52+
if (BuildConfig.DEBUG) {
53+
_uiEffect.send(LoginUiEffect.NavigateToTerms)
54+
} else {
55+
_uiEffect.send(LoginUiEffect.LaunchLogin(provider = provider))
56+
}
5657
}
5758
}
58-
}
5959

60-
private fun handleLoginResult(result: AuthResult) {
61-
viewModelScope.launch {
62-
update { copy(isLoading = false) }
60+
private fun handleLoginResult(result: AuthResult) {
61+
viewModelScope.launch {
62+
update { copy(isLoading = false) }
6363

64-
when (result) {
65-
AuthResult.Success -> _uiEffect.send(LoginUiEffect.NavigateToTerms)
66-
AuthResult.Cancelled -> _uiEffect.send(LoginUiEffect.ShowMessage(LoginUiMessage.LoginCancelled))
67-
is AuthResult.Failure -> _uiEffect.send(LoginUiEffect.ShowMessage(result.toUiMessage()))
64+
when (result) {
65+
AuthResult.Success -> _uiEffect.send(LoginUiEffect.NavigateToTerms)
66+
AuthResult.Cancelled -> _uiEffect.send(LoginUiEffect.ShowMessage(LoginUiMessage.LoginCancelled))
67+
is AuthResult.Failure -> _uiEffect.send(LoginUiEffect.ShowMessage(result.toUiMessage()))
68+
}
6869
}
6970
}
70-
}
7171

72-
private fun AuthResult.Failure.toUiMessage(): LoginUiMessage =
73-
when (this) {
74-
AuthResult.Failure.RateLimited -> LoginUiMessage.LoginFailedRateLimited
75-
AuthResult.Failure.Unknown -> LoginUiMessage.LoginFailedUnknown
76-
}
77-
}
72+
private fun AuthResult.Failure.toUiMessage(): LoginUiMessage =
73+
when (this) {
74+
AuthResult.Failure.RateLimited -> LoginUiMessage.LoginFailedRateLimited
75+
AuthResult.Failure.Unknown -> LoginUiMessage.LoginFailedUnknown
76+
}
77+
}

0 commit comments

Comments
 (0)