Skip to content

Commit 5869a40

Browse files
committed
Refactor: 카카오 로그인 로직 변경
- KakaoLoginHandlerImpl 추가하여 카카오 로그인 관련 로직 위임 - LoginScreen 카카오톡 설치 여부에 따른 분기 처리 제거 - OnKakaoLoginClick Intent 제거
1 parent 4944a2c commit 5869a40

File tree

4 files changed

+5
-27
lines changed

4 files changed

+5
-27
lines changed

presentation/src/main/java/com/threegap/bitnagil/presentation/login/LoginScreen.kt

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@ import androidx.compose.ui.platform.LocalContext
1414
import androidx.compose.ui.tooling.preview.Preview
1515
import androidx.compose.ui.unit.dp
1616
import androidx.hilt.navigation.compose.hiltViewModel
17-
import com.kakao.sdk.user.UserApiClient
1817
import com.threegap.bitnagil.designsystem.BitnagilTheme
19-
import com.threegap.bitnagil.presentation.login.model.LoginIntent
18+
import com.threegap.bitnagil.presentation.login.kakao.KakaoLoginHandlerImpl
2019
import com.threegap.bitnagil.presentation.login.model.LoginSideEffect
2120
import org.orbitmvi.orbit.compose.collectSideEffect
2221

@@ -25,18 +24,11 @@ fun LoginScreenContainer(
2524
viewModel: LoginViewModel = hiltViewModel(),
2625
) {
2726
val context = LocalContext.current
28-
val client = UserApiClient.instance
2927

3028
viewModel.collectSideEffect { sideEffect ->
3129
when (sideEffect) {
32-
is LoginSideEffect.RequestKakaoTalkLogin -> {
33-
client.loginWithKakaoTalk(context) { token, error ->
34-
viewModel.kakaoLogin(token, error)
35-
}
36-
}
37-
3830
is LoginSideEffect.RequestKakaoAccountLogin -> {
39-
client.loginWithKakaoAccount(context) { token, error ->
31+
KakaoLoginHandlerImpl.accountLogin(context) { token, error ->
4032
viewModel.kakaoLogin(token, error)
4133
}
4234
}
@@ -53,9 +45,9 @@ fun LoginScreenContainer(
5345

5446
LoginScreen(
5547
onKakaoLoginClick = {
56-
viewModel.sendIntent(
57-
LoginIntent.OnKakaoLoginClick(client.isKakaoTalkLoginAvailable(context)),
58-
)
48+
KakaoLoginHandlerImpl.login(context) { token, error ->
49+
viewModel.kakaoLogin(token, error)
50+
}
5951
},
6052
)
6153
}

presentation/src/main/java/com/threegap/bitnagil/presentation/login/LoginViewModel.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,6 @@ class LoginViewModel @Inject constructor(
3030
state: LoginState,
3131
): LoginState? =
3232
when (intent) {
33-
is LoginIntent.OnKakaoLoginClick -> {
34-
if (!intent.onKakaoTalkLoginAvailable) {
35-
sendSideEffect(LoginSideEffect.RequestKakaoAccountLogin)
36-
} else {
37-
sendSideEffect(LoginSideEffect.RequestKakaoTalkLogin)
38-
}
39-
null
40-
}
41-
4233
is LoginIntent.SetLoading -> {
4334
state.copy(isLoading = intent.isLoading)
4435
}

presentation/src/main/java/com/threegap/bitnagil/presentation/login/model/LoginIntent.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.threegap.bitnagil.presentation.login.model
33
import com.threegap.bitnagil.presentation.common.mviviewmodel.MviIntent
44

55
sealed class LoginIntent : MviIntent {
6-
data class OnKakaoLoginClick(val onKakaoTalkLoginAvailable: Boolean) : LoginIntent()
76
data class SetLoading(val isLoading: Boolean) : LoginIntent()
87
data class LoginSuccess(val isGuest: Boolean) : LoginIntent()
98
data object KakaoTalkLoginCancel : LoginIntent()

presentation/src/main/java/com/threegap/bitnagil/presentation/login/model/LoginSideEffect.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,7 @@ package com.threegap.bitnagil.presentation.login.model
33
import com.threegap.bitnagil.presentation.common.mviviewmodel.MviSideEffect
44

55
sealed interface LoginSideEffect : MviSideEffect {
6-
data object RequestKakaoTalkLogin : LoginSideEffect
7-
86
data object RequestKakaoAccountLogin : LoginSideEffect
9-
107
data object NavigateToHome : LoginSideEffect
11-
128
data object NavigateToTermsOfService : LoginSideEffect
139
}

0 commit comments

Comments
 (0)