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.aTimelineItemStateEventContent
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.typing.TypingNotificationState
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> {
return persistentListOf(
// 3 items (First Middle Last) with isMine = false
@@ -546,12 +546,11 @@ private fun TimelineViewWithReadMarker(
unreadMessagesCount: Int,
newMessagesCount: Int,
) {
val readMarker = aTimelineItemReadMarker()
val timelineItems = persistentListOf<TimelineItem>(
aTimelineItemEvent(isMine = false),
aTimelineItemEvent(isMine = false),
aTimelineItemEvent(isMine = true),
readMarker,
aTimelineItemEvent(isMine = false),
aTimelineItemEvent(isMine = false),
aTimelineItemEvent(isMine = false),
)
@@ -561,7 +560,10 @@ private fun TimelineViewWithReadMarker(
TimelineView(
state = aTimelineState(
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,
newMessagesCount = newMessagesCount,
),
@@ -590,7 +592,7 @@ internal fun TimelineViewWithReadMarkerNoBadgesPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun TimelineViewWithReadMarkerPreview() = ElementPreview {
TimelineViewWithReadMarker(unreadMessagesCount = 3, newMessagesCount = 12)
TimelineViewWithReadMarker(unreadMessagesCount = 3, newMessagesCount = 0)
}
@PreviewsDayNight