diff --git a/src/js/timeline.js b/src/js/timeline.js index 270c6ca..fab0b58 100644 --- a/src/js/timeline.js +++ b/src/js/timeline.js @@ -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)