@@ -26,6 +26,8 @@ import com.threegap.bitnagil.designsystem.BitnagilTheme
2626import com.threegap.bitnagil.designsystem.R
2727import com.threegap.bitnagil.designsystem.component.atom.BitnagilIcon
2828import com.threegap.bitnagil.designsystem.modifier.clickableWithoutRipple
29+ import com.threegap.bitnagil.presentation.common.flow.collectAsEffect
30+ import com.threegap.bitnagil.presentation.common.toast.GlobalBitnagilToast
2931import com.threegap.bitnagil.presentation.home.component.template.CollapsibleHomeHeader
3032import com.threegap.bitnagil.presentation.home.component.template.DeleteConfirmDialog
3133import com.threegap.bitnagil.presentation.home.component.template.RoutineDetailsBottomSheet
@@ -34,6 +36,7 @@ import com.threegap.bitnagil.presentation.home.component.template.RoutineSection
3436import com.threegap.bitnagil.presentation.home.component.template.RoutineSortBottomSheet
3537import com.threegap.bitnagil.presentation.home.component.template.WeeklyDatePicker
3638import com.threegap.bitnagil.presentation.home.model.HomeIntent
39+ import com.threegap.bitnagil.presentation.home.model.HomeSideEffect
3740import com.threegap.bitnagil.presentation.home.model.HomeState
3841import com.threegap.bitnagil.presentation.home.model.RoutineUiModel
3942import com.threegap.bitnagil.presentation.home.util.rememberCollapsibleHeaderState
@@ -48,6 +51,30 @@ fun HomeScreenContainer(
4851) {
4952 val uiState by viewModel.stateFlow.collectAsStateWithLifecycle()
5053
54+ viewModel.sideEffectFlow.collectAsEffect { sideEffect ->
55+ when (sideEffect) {
56+ is HomeSideEffect .NavigateToRegisterRoutine -> {
57+ navigateToRegisterRoutine()
58+ }
59+
60+ is HomeSideEffect .NavigateToEmotion -> {
61+ navigateToEmotion()
62+ }
63+
64+ is HomeSideEffect .NavigateToEditRoutine -> {
65+ navigateToEditRoutine(sideEffect.routineId)
66+ }
67+
68+ is HomeSideEffect .ShowToastWithIcon -> {
69+ GlobalBitnagilToast .showCheck(sideEffect.message)
70+ }
71+
72+ is HomeSideEffect .ShowToast -> {
73+ GlobalBitnagilToast .show(sideEffect.message)
74+ }
75+ }
76+ }
77+
5178 if (uiState.routineSortBottomSheetVisible) {
5279 RoutineSortBottomSheet (
5380 currentSortType = uiState.currentSortType,
@@ -65,7 +92,7 @@ fun HomeScreenContainer(
6592 RoutineDetailsBottomSheet (
6693 routine = routine,
6794 onDismiss = { viewModel.sendIntent(HomeIntent .HideRoutineDetailsBottomSheet ) },
68- onEdit = navigateToEditRoutine ,
95+ onEdit = { viewModel.sendIntent( HomeIntent . NavigateToEditRoutine (routine.routineId)) } ,
6996 onDelete = {
7097 if (routine.repeatDay.isEmpty()) {
7198 viewModel.deleteRoutine(routine.routineId)
@@ -117,8 +144,12 @@ fun HomeScreenContainer(
117144 onShowRoutineDetailsBottomSheet = { routine ->
118145 viewModel.sendIntent(HomeIntent .ShowRoutineDetailsBottomSheet (routine))
119146 },
120- onRegisterRoutineClick = navigateToRegisterRoutine,
121- onRegisterEmotionClick = navigateToEmotion,
147+ onRegisterRoutineClick = {
148+ viewModel.sendIntent(HomeIntent .OnRegisterRoutineClick )
149+ },
150+ onRegisterEmotionClick = {
151+ viewModel.sendIntent(HomeIntent .OnRegisterEmotionClick )
152+ },
122153 )
123154}
124155
0 commit comments