@@ -6,6 +6,7 @@ import androidx.lifecycle.viewModelScope
66import com.threegap.bitnagil.domain.routine.usecase.DeleteRoutineForDayUseCase
77import com.threegap.bitnagil.domain.routine.usecase.DeleteRoutineUseCase
88import com.threegap.bitnagil.domain.routine.usecase.FetchWeeklyRoutinesUseCase
9+ import com.threegap.bitnagil.domain.writeroutine.usecase.GetWriteRoutineEventFlowUseCase
910import com.threegap.bitnagil.presentation.common.mviviewmodel.MviViewModel
1011import com.threegap.bitnagil.presentation.home.util.getCurrentWeekDays
1112import com.threegap.bitnagil.presentation.routinelist.model.RoutineListIntent
@@ -24,6 +25,7 @@ class RoutineListViewModel @Inject constructor(
2425 private val fetchWeeklyRoutinesUseCase : FetchWeeklyRoutinesUseCase ,
2526 private val deleteRoutineUseCase : DeleteRoutineUseCase ,
2627 private val deleteRoutineForDayUseCase : DeleteRoutineForDayUseCase ,
28+ private val getWriteRoutineEventFlowUseCase : GetWriteRoutineEventFlowUseCase ,
2729) : MviViewModel<RoutineListState, RoutineListSideEffect, RoutineListIntent>(
2830 savedStateHandle = savedStateHandle,
2931 initState = RoutineListState (
@@ -38,6 +40,7 @@ class RoutineListViewModel @Inject constructor(
3840
3941 init {
4042 fetchRoutines()
43+ observeRoutineChanges()
4144 }
4245
4346 override suspend fun SimpleSyntax <RoutineListState , RoutineListSideEffect >.reduceState (
@@ -114,6 +117,14 @@ class RoutineListViewModel @Inject constructor(
114117 return newState
115118 }
116119
120+ private fun observeRoutineChanges () {
121+ viewModelScope.launch {
122+ getWriteRoutineEventFlowUseCase().collect {
123+ fetchRoutines()
124+ }
125+ }
126+ }
127+
117128 private fun fetchRoutines () {
118129 sendIntent(RoutineListIntent .UpdateLoading (true ))
119130 val currentWeek = stateFlow.value.selectedDate.getCurrentWeekDays()
0 commit comments