mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-03 13:37:56 -04:00
feat(timeline): add a timeline start virtual item
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
@@ -836,6 +836,9 @@ impl App {
|
||||
VirtualTimelineItem::ReadMarker => {
|
||||
content.push("Read marker".to_owned());
|
||||
}
|
||||
VirtualTimelineItem::TimelineStart => {
|
||||
content.push("🥳 Timeline start! 🥳".to_owned());
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user