Files
forkmessager/client-mobile/core/utils/NavigationManager.kt
2026-04-16 15:41:22 +03:00

25 lines
573 B
Kotlin

package core.utils
import javax.inject.Inject
import javax.inject.Singleton
import kotlinx.coroutines.flow.MutableSharedFlow
sealed class NavEvent {
data class OpenChat(val chatId: String) : NavEvent()
object Logout : NavEvent()
}
@Singleton
class NavigationManager @Inject constructor() {
private val _events = MutableSharedFlow<NavEvent>(extraBufferCapacity = 1)
val events = _events
fun navigateToChat(chatId: String) {
_events.tryEmit(NavEvent.OpenChat(chatId))
}
fun logout() {
_events.tryEmit(NavEvent.Logout)
}
}