Skip to content

Commit 9a1bfab

Browse files
committed
Feat: 탈퇴화면 navigation 연결
1 parent 124fa23 commit 9a1bfab

6 files changed

Lines changed: 35 additions & 1 deletion

File tree

app/src/main/java/com/threegap/bitnagil/MainNavHost.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import com.threegap.bitnagil.presentation.setting.SettingScreenContainer
1616
import com.threegap.bitnagil.presentation.splash.SplashScreenContainer
1717
import com.threegap.bitnagil.presentation.terms.TermsAgreementScreenContainer
1818
import com.threegap.bitnagil.presentation.webview.BitnagilWebViewScreen
19+
import com.threegap.bitnagil.presentation.withdrawal.WithdrawalScreenContainer
1920
import com.threegap.bitnagil.presentation.writeroutine.WriteRoutineScreenContainer
2021
import com.threegap.bitnagil.presentation.writeroutine.WriteRoutineViewModel
2122
import com.threegap.bitnagil.presentation.writeroutine.model.navarg.WriteRoutineScreenArg
@@ -166,6 +167,9 @@ fun MainNavHost(
166167
}
167168
}
168169
},
170+
navigateToWithdrawal = {
171+
navigator.navController.navigate(Route.Withdrawal)
172+
},
169173
)
170174
}
171175

@@ -223,5 +227,22 @@ fun MainNavHost(
223227
},
224228
)
225229
}
230+
231+
composable<Route.Withdrawal> {
232+
WithdrawalScreenContainer(
233+
navigateToBack = {
234+
if (navigator.navController.previousBackStackEntry != null) {
235+
navigator.navController.popBackStack()
236+
}
237+
},
238+
navigateToLogin = {
239+
navigator.navController.navigate(Route.Login) {
240+
popUpTo(0) {
241+
inclusive = true
242+
}
243+
}
244+
},
245+
)
246+
}
226247
}
227248
}

app/src/main/java/com/threegap/bitnagil/Route.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,7 @@ sealed interface Route {
3838

3939
@Serializable
4040
data object Emotion : Route
41+
42+
@Serializable
43+
data object Withdrawal : Route
4144
}

presentation/src/main/java/com/threegap/bitnagil/presentation/setting/SettingScreen.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import com.threegap.bitnagil.designsystem.modifier.clickableWithoutRipple
3030
import com.threegap.bitnagil.presentation.common.flow.collectAsEffect
3131
import com.threegap.bitnagil.presentation.setting.component.atom.settingtitle.SettingTitle
3232
import com.threegap.bitnagil.presentation.setting.component.block.LogoutConfirmDialog
33+
import com.threegap.bitnagil.presentation.setting.model.mvi.SettingIntent
3334
import com.threegap.bitnagil.presentation.setting.model.mvi.SettingSideEffect
3435
import com.threegap.bitnagil.presentation.setting.model.mvi.SettingState
3536

@@ -40,12 +41,14 @@ fun SettingScreenContainer(
4041
navigateToTermsOfService: () -> Unit,
4142
navigateToPrivacyPolicy: () -> Unit,
4243
navigateToLogin: () -> Unit,
44+
navigateToWithdrawal: () -> Unit,
4345
) {
4446
val state by viewModel.stateFlow.collectAsState()
4547

4648
viewModel.sideEffectFlow.collectAsEffect { sideEffect ->
4749
when (sideEffect) {
4850
SettingSideEffect.NavigateToLogin -> navigateToLogin()
51+
SettingSideEffect.NavigateToWithdrawal -> navigateToWithdrawal()
4952
}
5053
}
5154

@@ -65,7 +68,7 @@ fun SettingScreenContainer(
6568
onClickTermsOfService = navigateToTermsOfService,
6669
onClickPrivacyPolicy = navigateToPrivacyPolicy,
6770
onClickLogout = viewModel::showLogoutDialog,
68-
onClickWithdrawal = {},
71+
onClickWithdrawal = { viewModel.sendIntent(SettingIntent.OnWithdrawalClick) },
6972
)
7073
}
7174

presentation/src/main/java/com/threegap/bitnagil/presentation/setting/SettingViewModel.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ class SettingViewModel @Inject constructor(
6565
SettingIntent.LogoutFailure -> {
6666
return state.copy(loading = false)
6767
}
68+
69+
SettingIntent.OnWithdrawalClick -> {
70+
sendSideEffect(SettingSideEffect.NavigateToWithdrawal)
71+
return null
72+
}
6873
}
6974
}
7075

presentation/src/main/java/com/threegap/bitnagil/presentation/setting/model/mvi/SettingIntent.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ sealed class SettingIntent : MviIntent {
1717
data object LogoutLoading : SettingIntent()
1818
data object LogoutSuccess : SettingIntent()
1919
data object LogoutFailure : SettingIntent()
20+
data object OnWithdrawalClick : SettingIntent()
2021
}

presentation/src/main/java/com/threegap/bitnagil/presentation/setting/model/mvi/SettingSideEffect.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ import com.threegap.bitnagil.presentation.common.mviviewmodel.MviSideEffect
44

55
sealed class SettingSideEffect : MviSideEffect {
66
data object NavigateToLogin : SettingSideEffect()
7+
data object NavigateToWithdrawal : SettingSideEffect()
78
}

0 commit comments

Comments
 (0)