Wait for events to load before saving scroll position
This commit is contained in:
parent
6227f6fa84
commit
c9dffc9d4a
1 changed files with 7 additions and 4 deletions
|
@ -33,9 +33,9 @@ function eventSearch(list, event, min = 0, max = NO_MAX) {
|
|||
}
|
||||
}
|
||||
// recurse (below)
|
||||
if (list[mid].data.origin_server_ts > event.data.origin_server_ts) return eventSearch(list, event, min, mid-1)
|
||||
if (list[mid].data.origin_server_ts > event.data.origin_server_ts) return eventSearch(list, event, min, mid - 1)
|
||||
// recurse (above)
|
||||
else return eventSearch(list, event, mid+1, max)
|
||||
else return eventSearch(list, event, mid + 1, max)
|
||||
}
|
||||
|
||||
class Event extends ElemJS {
|
||||
|
@ -213,7 +213,7 @@ class ReactiveTimeline extends ElemJS {
|
|||
if (!search.success) {
|
||||
if (search.i >= 1) {
|
||||
// add at end
|
||||
this.tryAddGroups(event, [search.i-1, search.i])
|
||||
this.tryAddGroups(event, [search.i - 1, search.i])
|
||||
} else {
|
||||
// add at start
|
||||
this.tryAddGroups(event, [0, -1])
|
||||
|
@ -373,7 +373,6 @@ class Timeline extends Subscribable {
|
|||
}
|
||||
|
||||
async loadScrollback() {
|
||||
this.broadcast("beforeScrollbackLoad")
|
||||
debug = true
|
||||
if (!this.from) throw new Error("Can't load scrollback, no from token")
|
||||
const url = new URL(`${lsm.get("domain")}/_matrix/client/r0/rooms/${this.id}/messages`)
|
||||
|
@ -385,7 +384,11 @@ class Timeline extends Subscribable {
|
|||
lazy_load_members: true
|
||||
}
|
||||
url.searchParams.set("filter", JSON.stringify(filter))
|
||||
|
||||
const root = await fetch(url.toString()).then(res => res.json())
|
||||
|
||||
this.broadcast("beforeScrollbackLoad")
|
||||
|
||||
this.from = root.end
|
||||
//console.log(this.updateEvents, root.chunk)
|
||||
if (root.state) this.updateStateEvents(root.state)
|
||||
|
|
Loading…
Reference in a new issue