|
|
|
@ -13,6 +13,7 @@ import io.element.android.features.messages.impl.timeline.model.NewEventState
@@ -13,6 +13,7 @@ import io.element.android.features.messages.impl.timeline.model.NewEventState
|
|
|
|
|
import io.element.android.features.messages.impl.timeline.model.TimelineItem |
|
|
|
|
import io.element.android.features.messages.impl.typing.TypingNotificationState |
|
|
|
|
import io.element.android.libraries.matrix.api.core.EventId |
|
|
|
|
import io.element.android.libraries.matrix.api.core.UniqueId |
|
|
|
|
import io.element.android.libraries.matrix.api.timeline.item.event.MessageShield |
|
|
|
|
import kotlinx.collections.immutable.ImmutableList |
|
|
|
|
import kotlin.time.Duration |
|
|
|
@ -30,8 +31,15 @@ data class TimelineState(
@@ -30,8 +31,15 @@ data class TimelineState(
|
|
|
|
|
val resolveVerifiedUserSendFailureState: ResolveVerifiedUserSendFailureState, |
|
|
|
|
val eventSink: (TimelineEvents) -> Unit, |
|
|
|
|
) { |
|
|
|
|
val hasAnyEvent = timelineItems.any { it is TimelineItem.Event } |
|
|
|
|
val lastTimelineEvent = timelineItems.firstOrNull { it is TimelineItem.Event} as? TimelineItem.Event |
|
|
|
|
val hasAnyEvent = lastTimelineEvent != null |
|
|
|
|
val focusedEventId = focusRequestState.eventId() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun isLastOutgoingMessage(uniqueId: UniqueId): Boolean { |
|
|
|
|
return lastTimelineEvent != null && lastTimelineEvent.isMine && lastTimelineEvent.id == uniqueId |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Immutable |
|
|
|
|