11package com.getcode.navigation.screens
22
33import androidx.compose.runtime.Composable
4+ import androidx.compose.runtime.LaunchedEffect
45import androidx.compose.ui.platform.LocalLifecycleOwner
56import androidx.compose.ui.res.stringResource
67import androidx.lifecycle.Lifecycle
78import cafe.adriel.voyager.core.screen.ScreenKey
89import cafe.adriel.voyager.core.screen.uniqueScreenKey
910import cafe.adriel.voyager.hilt.getViewModel
1011import com.getcode.R
12+ import com.getcode.TopLevelViewModel
1113import com.getcode.analytics.AnalyticsManager
1214import com.getcode.analytics.AnalyticsScreenWatcher
1315import com.getcode.model.KinAmount
@@ -22,6 +24,7 @@ import com.getcode.view.main.getKin.GetKinSheet
2224import com.getcode.view.main.giveKin.GiveKinSheet
2325import com.getcode.view.main.home.HomeScreen
2426import com.getcode.view.main.home.HomeViewModel
27+ import kotlinx.coroutines.flow.filterIsInstance
2528import kotlinx.coroutines.flow.filterNotNull
2629import kotlinx.coroutines.flow.launchIn
2730import kotlinx.coroutines.flow.mapNotNull
@@ -46,7 +49,9 @@ data class HomeScreen(
4649
4750 @Composable
4851 override fun Content () {
49- val vm = getViewModel<HomeViewModel >()
52+ val vm = getActivityScopedViewModel<HomeViewModel >()
53+ val tlvm = getActivityScopedViewModel<TopLevelViewModel >()
54+
5055 startupLog(" home rendered" )
5156 HomeScreen (vm, cashLink, requestPayload)
5257
@@ -61,7 +66,13 @@ data class HomeScreen(
6166 vm.presentRequest(amount = result.amount, payload = null , request = null )
6267 }
6368 }
69+ }
6470
71+ LaunchedEffect (tlvm) {
72+ tlvm.eventFlow
73+ .filterIsInstance<TopLevelViewModel .Event .LogoutCompleted >()
74+ .onEach { vm.reset() }
75+ .launchIn(this )
6576 }
6677 }
6778}
0 commit comments