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;
|
await loadTimelineFuture;
|
||||||
if (initialEventId != null) scrollToEventId(initialEventId);
|
if (initialEventId != null) scrollToEventId(initialEventId);
|
||||||
|
|
||||||
final readMarkerEventIndex = readMarkerEventId.isEmpty
|
var readMarkerEventIndex = readMarkerEventId.isEmpty
|
||||||
? -1
|
? -1
|
||||||
: timeline!.events
|
: timeline!.events
|
||||||
.where((e) => e.isVisibleInGui)
|
.where((e) => e.isVisibleInGui || e.eventId == readMarkerEventId)
|
||||||
.toList()
|
.toList()
|
||||||
.indexWhere((e) => e.eventId == readMarkerEventId);
|
.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) {
|
if (readMarkerEventIndex > 1) {
|
||||||
Logs().v('Scroll up to visible event', readMarkerEventId);
|
Logs().v('Scroll up to visible event', readMarkerEventId);
|
||||||
scrollToEventId(readMarkerEventId, highlightEvent: false);
|
scrollToEventId(readMarkerEventId, highlightEvent: false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue