mirror of
https://github.com/vector-im/hydrogen-web.git
synced 2024-12-23 19:45:05 +01:00
Return fetched or retrieved entry from GapWriter
This commit is contained in:
parent
7f91e0c1bd
commit
889f4dd104
@ -112,14 +112,17 @@ export class Room extends BaseRoom {
|
||||
|
||||
async fetchContext(eventId, log = null) {
|
||||
const response = await this._hsApi.context(this._roomId, eventId, {}, {log}).response();
|
||||
let contextEvent = null;
|
||||
await this._fetchEvents(async (txn, gapWriter) => {
|
||||
// Just in case we somehow receive remote echoes during event fetch
|
||||
const beforeExtra = await this._writeGapFill(response.events_before, txn, log);
|
||||
const afterExtra = await this._writeGapFill(response.events_after, txn, log);
|
||||
beforeExtra.push(...afterExtra);
|
||||
const gapResult = await gapWriter.writeContext(response, txn, log);
|
||||
contextEvent = gapResult.contextEvent;
|
||||
return { extraGapFillChanges: beforeExtra, gapResult };
|
||||
}, log);
|
||||
return contextEvent;
|
||||
}
|
||||
|
||||
/** @package */
|
||||
|
@ -230,7 +230,7 @@ export class GapWriter {
|
||||
const eventEntry = await txn.timelineEvents.getByEventId(this._roomId, event.event_id);
|
||||
if (eventEntry) {
|
||||
// If we have the current event, eary return.
|
||||
return { entries: [], updatedEntries: [], fragments: [] }
|
||||
return { entries: [], updatedEntries: [], fragments: [], contextEvent: new EventEntry(eventEntry, this._fragmentIdComparer) }
|
||||
}
|
||||
|
||||
const maxFragmentKey = await txn.timelineFragments.getMaxFragmentId(this._roomId);
|
||||
@ -256,6 +256,7 @@ export class GapWriter {
|
||||
// may as well modify one of them in-place instead of returning a third.
|
||||
startFill.entries.push(...endFill.entries);
|
||||
startFill.updatedEntries.push(...endFill.updatedEntries);
|
||||
startFill.contextEvent = startFill.entries.find(e => e.id === event.event_id);
|
||||
startFill.fragments.push(...endFill.fragments);
|
||||
if (!startFill.fragments.includes(newFragment)) {
|
||||
// We created the fragment so it is updated.
|
||||
|
Loading…
Reference in New Issue
Block a user