chore: Better scroll up

pull/1302/head
krille-chan 12 months ago
parent 9d83a5c56c
commit 0f16cdee88
No known key found for this signature in database

@ -285,13 +285,23 @@ class ChatController extends State<ChatPageWithRoom>
await loadTimelineFuture;
if (initialEventId != null) scrollToEventId(initialEventId);
final readMarkerEventIndex = readMarkerEventId.isEmpty
var readMarkerEventIndex = readMarkerEventId.isEmpty
? -1
: timeline!.events
.where((e) => e.isVisibleInGui)
.where((e) => e.isVisibleInGui || e.eventId == readMarkerEventId)
.toList()
.indexWhere((e) => e.eventId == readMarkerEventId);
// Read marker is existing but not found in first events. Try a single
// requestHistory call before opening timeline on event context:
if (readMarkerEventId.isNotEmpty && readMarkerEventIndex == -1) {
await timeline?.requestHistory(historyCount: _loadHistoryCount);
readMarkerEventIndex = timeline!.events
.where((e) => e.isVisibleInGui || e.eventId == readMarkerEventId)
.toList()
.indexWhere((e) => e.eventId == readMarkerEventId);
}
if (readMarkerEventIndex > 1) {
Logs().v('Scroll up to visible event', readMarkerEventId);
scrollToEventId(readMarkerEventId, highlightEvent: false);

Loading…
Cancel
Save