You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-12-05 17:02:07 +03:00
Always add pending relation events to the timeline sets directly
This special cases pending relation events to go directly to the timeline sets and ignores the `pendingEventOrdering` option. This feels a bit strange in the code, so we should revisit this choice when we stabilized relation support.
This commit is contained in:
@@ -730,6 +730,16 @@ utils.extend(module.exports.MatrixEvent.prototype, {
|
||||
// successfully sent.
|
||||
this.status = null;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get whether the event is a relation event.
|
||||
* @return {boolean}
|
||||
*/
|
||||
isRelation() {
|
||||
const content = this.getContent();
|
||||
const relation = content && content["m.relates_to"];
|
||||
return relation && relation.rel_type && relation.event_id;
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -1101,7 +1101,11 @@ Room.prototype.addPendingEvent = function(event, txnId) {
|
||||
|
||||
this._txnToEvent[txnId] = event;
|
||||
|
||||
if (this._opts.pendingEventOrdering == "detached") {
|
||||
// TODO: We currently ignore `pendingEventOrdering` for relation events.
|
||||
// They are aggregated by the timeline set, and we want that to happen right
|
||||
// away for easy local echo, but it complicates what should be a general
|
||||
// code path by branching on the event type.
|
||||
if (!event.isRelation() && this._opts.pendingEventOrdering == "detached") {
|
||||
if (this._pendingEventList.some((e) => e.status === EventStatus.NOT_SENT)) {
|
||||
console.warn("Setting event as NOT_SENT due to messages in the same state");
|
||||
event.status = EventStatus.NOT_SENT;
|
||||
|
||||
Reference in New Issue
Block a user