Files
forkmessager/client-mobile/core/utils/NavigationManager.kt
Халимов Рустам 7c66e1c0c0 Кэш чатов
2026-04-20 00:25:40 +03:00

25 lines
641 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, val chatName: String = "Chat") : NavEvent()
object Logout : NavEvent()
}
@Singleton
class NavigationManager @Inject constructor() {
private val _events = MutableSharedFlow<NavEvent>(extraBufferCapacity = 1)
val events = _events
fun navigateToChat(chatId: String, chatName: String = "Chat") {
_events.tryEmit(NavEvent.OpenChat(chatId, chatName))
}
fun logout() {
_events.tryEmit(NavEvent.Logout)
}
}