fix events leak

This commit is contained in:
2026-08-03 21:52:57 +03:00
parent 0963829543
commit dd657f83d0
@@ -8,13 +8,14 @@ import com.arkivanov.decompose.router.webhistory.WebNavigation
import com.arkivanov.decompose.router.webhistory.WebNavigationOwner import com.arkivanov.decompose.router.webhistory.WebNavigationOwner
import com.arkivanov.essenty.lifecycle.coroutines.repeatOnLifecycle import com.arkivanov.essenty.lifecycle.coroutines.repeatOnLifecycle
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.serialization.KSerializer import kotlinx.serialization.KSerializer
import org.koin.core.Koin import org.koin.core.Koin
import org.koin.core.annotation.Factory import org.koin.core.annotation.Factory
import ru.shadowsparky.http.domain.TokenStorage import ru.shadowsparky.http.domain.TokenStorage
import ru.shadowsparky.http.domain.hasAccount
import ru.shadowsparky.ui.nav.RootComponent import ru.shadowsparky.ui.nav.RootComponent
import ru.shadowsparky.updater.presentation.UpdateComponentFactory import ru.shadowsparky.updater.presentation.UpdateComponentFactory
import ru.shadowsparky.vbox.shared.di.factory.ImageLoaderProvider import ru.shadowsparky.vbox.shared.di.factory.ImageLoaderProvider
@@ -48,9 +49,13 @@ class VBoxRootComponent(
init { init {
scope.launch { scope.launch {
repeatOnLifecycle { repeatOnLifecycle {
if (tokenStorage.hasAccount()) { tokenStorage.token.flatMapLatest {
remoteEventListener.event.collect() if (it != null) {
remoteEventListener.event
} else {
flowOf()
} }
}.collect()
} }
} }
scope.launch { scope.launch {