feat(timeline): add a timeline start virtual item

This commit is contained in:
Benjamin Bouvier
2025-03-19 16:09:37 +01:00
parent 5ce045ee02
commit f5b6767253
4 changed files with 18 additions and 4 deletions

View File

@@ -974,6 +974,7 @@ impl TimelineItem {
match self.0.as_virtual()? {
VItem::DateDivider(ts) => Some(VirtualTimelineItem::DateDivider { ts: (*ts).into() }),
VItem::ReadMarker => Some(VirtualTimelineItem::ReadMarker),
VItem::TimelineStart => Some(VirtualTimelineItem::TimelineStart),
}
}
@@ -1254,6 +1255,9 @@ pub enum VirtualTimelineItem {
/// The user's own read marker.
ReadMarker,
/// The timeline start, that is, the *oldest* event in time for that room.
TimelineStart,
}
/// A [`TimelineItem`](super::TimelineItem) that doesn't correspond to an event.

View File

@@ -153,7 +153,8 @@ impl DateDividerAdjuster {
latest_event_ts = Some(ts);
}
TimelineItemKind::Virtual(VirtualTimelineItem::ReadMarker) => {
TimelineItemKind::Virtual(VirtualTimelineItem::ReadMarker)
| TimelineItemKind::Virtual(VirtualTimelineItem::TimelineStart) => {
// Nothing to do.
}
}
@@ -242,8 +243,9 @@ impl DateDividerAdjuster {
return true;
}
TimelineItemKind::Virtual(VirtualTimelineItem::ReadMarker) => {
// Nothing to do for read markers.
TimelineItemKind::Virtual(VirtualTimelineItem::ReadMarker)
| TimelineItemKind::Virtual(VirtualTimelineItem::TimelineStart) => {
// Nothing to do.
}
}
@@ -304,7 +306,8 @@ impl DateDividerAdjuster {
}
}
TimelineItemKind::Virtual(VirtualTimelineItem::ReadMarker) => {
TimelineItemKind::Virtual(VirtualTimelineItem::ReadMarker)
| TimelineItemKind::Virtual(VirtualTimelineItem::TimelineStart) => {
// Nothing to do.
}
}

View File

@@ -26,4 +26,8 @@ pub enum VirtualTimelineItem {
/// The user's own read marker.
ReadMarker,
/// The timeline start, that is, an indication that we've seen all the
/// events for that timeline.
TimelineStart,
}

View File

@@ -836,6 +836,9 @@ impl App {
VirtualTimelineItem::ReadMarker => {
content.push("Read marker".to_owned());
}
VirtualTimelineItem::TimelineStart => {
content.push("🥳 Timeline start! 🥳".to_owned());
}
},
}
}