Don't show NEW timeline divider when not applicable in previews

This commit is contained in:
Jenna Vassar
2026-04-29 17:29:51 -07:00
parent 9f26079b84
commit 2579e68edc
2 changed files with 6 additions and 12 deletions
@@ -23,7 +23,6 @@ import io.element.android.features.messages.impl.timeline.model.anAggregatedReac
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContent
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemStateEventContent import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemStateEventContent
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent
import io.element.android.features.messages.impl.timeline.model.virtual.TimelineItemReadMarkerModel
import io.element.android.features.messages.impl.timeline.model.virtual.aTimelineItemDaySeparatorModel import io.element.android.features.messages.impl.timeline.model.virtual.aTimelineItemDaySeparatorModel
import io.element.android.features.messages.impl.typing.TypingNotificationState import io.element.android.features.messages.impl.typing.TypingNotificationState
import io.element.android.features.messages.impl.typing.aTypingNotificationState import io.element.android.features.messages.impl.typing.aTypingNotificationState
@@ -90,13 +89,6 @@ fun aTimelineState(
) )
} }
internal fun aTimelineItemReadMarker(): TimelineItem.Virtual {
return TimelineItem.Virtual(
id = UniqueId(UUID.randomUUID().toString()),
model = TimelineItemReadMarkerModel,
)
}
internal fun aTimelineItemList(content: TimelineItemEventContent): ImmutableList<TimelineItem> { internal fun aTimelineItemList(content: TimelineItemEventContent): ImmutableList<TimelineItem> {
return persistentListOf( return persistentListOf(
// 3 items (First Middle Last) with isMine = false // 3 items (First Middle Last) with isMine = false
@@ -546,12 +546,11 @@ private fun TimelineViewWithReadMarker(
unreadMessagesCount: Int, unreadMessagesCount: Int,
newMessagesCount: Int, newMessagesCount: Int,
) { ) {
val readMarker = aTimelineItemReadMarker()
val timelineItems = persistentListOf<TimelineItem>( val timelineItems = persistentListOf<TimelineItem>(
aTimelineItemEvent(isMine = false), aTimelineItemEvent(isMine = false),
aTimelineItemEvent(isMine = false), aTimelineItemEvent(isMine = false),
aTimelineItemEvent(isMine = true), aTimelineItemEvent(isMine = true),
readMarker, aTimelineItemEvent(isMine = false),
aTimelineItemEvent(isMine = false), aTimelineItemEvent(isMine = false),
aTimelineItemEvent(isMine = false), aTimelineItemEvent(isMine = false),
) )
@@ -561,7 +560,10 @@ private fun TimelineViewWithReadMarker(
TimelineView( TimelineView(
state = aTimelineState( state = aTimelineState(
timelineItems = timelineItems, timelineItems = timelineItems,
readMarkerIndex = timelineItems.indexOf(readMarker), // Index points past the loaded items, mirroring the real-world state the FAB
// represents: the user has scrolled past the read marker, so it's no longer in
// view. The actual scroll target doesn't matter for a static preview.
readMarkerIndex = timelineItems.size,
unreadMessagesCount = unreadMessagesCount, unreadMessagesCount = unreadMessagesCount,
newMessagesCount = newMessagesCount, newMessagesCount = newMessagesCount,
), ),
@@ -590,7 +592,7 @@ internal fun TimelineViewWithReadMarkerNoBadgesPreview() = ElementPreview {
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun TimelineViewWithReadMarkerPreview() = ElementPreview { internal fun TimelineViewWithReadMarkerPreview() = ElementPreview {
TimelineViewWithReadMarker(unreadMessagesCount = 3, newMessagesCount = 12) TimelineViewWithReadMarker(unreadMessagesCount = 3, newMessagesCount = 0)
} }
@PreviewsDayNight @PreviewsDayNight