store last pagination token
This commit is contained in:
parent
d08297d1e0
commit
f84c9d51b4
2 changed files with 12 additions and 2 deletions
|
@ -99,7 +99,7 @@ export class Room extends EventEmitter {
|
||||||
} else {
|
} else {
|
||||||
let members;
|
let members;
|
||||||
if (!this._summary.hasFetchedMembers) {
|
if (!this._summary.hasFetchedMembers) {
|
||||||
const paginationToken = throw new Error("not implemented");
|
const paginationToken = this._summary.lastPaginationToken;
|
||||||
// TODO: move all of this out of Room
|
// TODO: move all of this out of Room
|
||||||
|
|
||||||
// if any members are changed by sync while we're fetching members,
|
// if any members are changed by sync while we're fetching members,
|
||||||
|
|
|
@ -27,7 +27,12 @@ function applySyncResponse(data, roomResponse, membership) {
|
||||||
data = roomResponse.state.events.reduce(processEvent, data);
|
data = roomResponse.state.events.reduce(processEvent, data);
|
||||||
}
|
}
|
||||||
if (roomResponse.timeline) {
|
if (roomResponse.timeline) {
|
||||||
data = roomResponse.timeline.events.reduce(processEvent, data);
|
const {timeline} = roomResponse;
|
||||||
|
if (timeline.prev_batch) {
|
||||||
|
data = data.cloneIfNeeded();
|
||||||
|
data.lastPaginationToken = timeline.prev_batch;
|
||||||
|
}
|
||||||
|
data = timeline.events.reduce(processEvent, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
@ -99,6 +104,7 @@ class SummaryData {
|
||||||
this.canonicalAlias = copy ? copy.canonicalAlias : null;
|
this.canonicalAlias = copy ? copy.canonicalAlias : null;
|
||||||
this.altAliases = copy ? copy.altAliases : null;
|
this.altAliases = copy ? copy.altAliases : null;
|
||||||
this.hasFetchedMembers = copy ? copy.hasFetchedMembers : false;
|
this.hasFetchedMembers = copy ? copy.hasFetchedMembers : false;
|
||||||
|
this.lastPaginationToken = copy ? copy.lastPaginationToken : null;
|
||||||
this.cloned = copy ? true : false;
|
this.cloned = copy ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,6 +159,10 @@ export class RoomSummary {
|
||||||
return this._data.hasFetchedMembers;
|
return this._data.hasFetchedMembers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get lastPaginationToken() {
|
||||||
|
return this._data.lastPaginationToken;
|
||||||
|
}
|
||||||
|
|
||||||
writeHasFetchedMembers(value, txn) {
|
writeHasFetchedMembers(value, txn) {
|
||||||
const data = new SummaryData(this._data);
|
const data = new SummaryData(this._data);
|
||||||
data.hasFetchedMembers = value;
|
data.hasFetchedMembers = value;
|
||||||
|
|
Reference in a new issue