chore: Better scroll up
This commit is contained in:
parent
9d83a5c56c
commit
0f16cdee88
1 changed files with 12 additions and 2 deletions
|
|
@ -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…
Add table
Reference in a new issue