@@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Column
44import androidx.compose.foundation.layout.fillMaxSize
55import androidx.compose.runtime.Composable
66import androidx.compose.runtime.getValue
7+ import androidx.compose.runtime.remember
78import androidx.compose.ui.Alignment
89import androidx.compose.ui.Modifier
10+ import androidx.compose.ui.platform.LocalContext
911import androidx.compose.ui.window.DialogProperties
1012import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
1113import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -22,6 +24,8 @@ import com.neki.android.feature.mypage.impl.main.MyPageState
2224import com.neki.android.feature.mypage.impl.main.MyPageViewModel
2325import com.neki.android.feature.mypage.impl.profile.component.ProfileSettingTopBar
2426import com.neki.android.feature.mypage.impl.profile.component.SettingProfileImage
27+ import com.neki.android.core.common.kakao.KakaoAuthHelper
28+ import timber.log.Timber
2529
2630@Composable
2731internal fun ProfileSettingRoute (
@@ -30,13 +34,27 @@ internal fun ProfileSettingRoute(
3034 navigateToEditProfile : () -> Unit ,
3135 navigateToLogin : () -> Unit ,
3236) {
37+ val context = LocalContext .current
3338 val uiState by viewModel.store.uiState.collectAsStateWithLifecycle()
39+ val kakaoAuthHelper = remember { KakaoAuthHelper (context) }
3440
3541 viewModel.store.sideEffects.collectWithLifecycle { sideEffect ->
3642 when (sideEffect) {
3743 MyPageEffect .NavigateBack -> navigateBack()
3844 MyPageEffect .NavigateToEditProfile -> navigateToEditProfile()
3945 MyPageEffect .NavigateToLogin -> navigateToLogin()
46+ MyPageEffect .LogoutWithKakao -> {
47+ kakaoAuthHelper.logout(
48+ onSuccess = { navigateToLogin() },
49+ onFailure = { Timber .e(it) },
50+ )
51+ }
52+ MyPageEffect .UnlinkWithKakao -> {
53+ kakaoAuthHelper.unlink(
54+ onSuccess = { navigateToLogin() },
55+ onFailure = { Timber .e(it) },
56+ )
57+ }
4058 else -> {}
4159 }
4260 }
0 commit comments