@@ -70,6 +70,7 @@ import xyz.flipchat.services.domain.model.chat.ConversationMember
7070import xyz.flipchat.services.domain.model.chat.ConversationMessage
7171import xyz.flipchat.services.domain.model.chat.ConversationWithMembersAndLastPointers
7272import xyz.flipchat.services.extensions.titleOrFallback
73+ import xyz.flipchat.services.user.AuthState
7374import xyz.flipchat.services.user.UserManager
7475import java.util.UUID
7576import javax.inject.Inject
@@ -143,7 +144,7 @@ class ConversationViewModel @Inject constructor(
143144 sealed interface Event {
144145 data class OnSelfChanged (val id : ID ? , val displayName : String? ) : Event
145146 data class OnChatIdChanged (val chatId : ID ? ) : Event
146- data class OnMembersChanged (val members : List <ConversationMember >): Event
147+ data class OnMembersChanged (val members : List <ConversationMember >) : Event
147148 data class OnConversationChanged (val conversationWithPointers : ConversationWithMembersAndLastPointers ) :
148149 Event
149150
@@ -161,8 +162,11 @@ class ConversationViewModel @Inject constructor(
161162 data class ReplyTo (val message : ChatItem .Message ) : Event
162163 data object CancelReply : Event
163164
164- data class OnFollowingRoomChanged (val attempting : Boolean ): Event
165+ data class OnFollowingRoomChanged (val attempting : Boolean ) : Event
165166 data object OnJoinRequestedFromSpectating : Event
167+ data object NeedsAccountCreated : Event
168+ data object OnAccountCreated : Event
169+ data object OnJoinRoom : Event
166170
167171 data object ReopenStream : Event
168172 data object CloseStream : Event
@@ -518,6 +522,18 @@ class ConversationViewModel @Inject constructor(
518522
519523 eventFlow
520524 .filterIsInstance<Event .OnJoinRequestedFromSpectating >()
525+ .map { userManager.authState }
526+ .onEach {
527+ if (it is AuthState .LoggedIn ) {
528+ dispatchEvent(Event .OnJoinRoom )
529+ } else {
530+ dispatchEvent(Event .NeedsAccountCreated )
531+ }
532+ }
533+ .launchIn(viewModelScope)
534+
535+ eventFlow
536+ .filterIsInstance<Event .OnJoinRoom >()
521537 .map { stateFlow.value.roomInfoArgs }
522538 .filter { it.ownerId != null }
523539 .map { profileController.getPaymentDestinationForUser(it.ownerId!! ) }
@@ -876,6 +892,9 @@ class ConversationViewModel @Inject constructor(
876892 state.copy(isSelfTyping = false )
877893 }
878894
895+ is Event .OnJoinRoom ,
896+ is Event .OnAccountCreated ,
897+ is Event .NeedsAccountCreated ,
879898 is Event .OnJoinRequestedFromSpectating ,
880899 is Event .Error ,
881900 Event .RevealIdentity ,
0 commit comments