You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2026-01-03 23:22:30 +03:00
Merge branch 'develop' into voip
This commit is contained in:
@@ -21,7 +21,7 @@ module.exports.PREFIX_V1 = "/_matrix/client/api/v1";
|
||||
* A constant representing the URI path for version 2 alpha of the Client-Server
|
||||
* HTTP API.
|
||||
*/
|
||||
module.exports.PREFIX_V2_ALPHA_PREFIX = "/_matrix/client/v2_alpha";
|
||||
module.exports.PREFIX_V2_ALPHA = "/_matrix/client/v2_alpha";
|
||||
|
||||
/**
|
||||
* Construct a MatrixHttpApi.
|
||||
|
||||
@@ -85,25 +85,9 @@ utils.inherits(Room, EventEmitter);
|
||||
Room.prototype.addEventsToTimeline = function(events, toStartOfTimeline) {
|
||||
var stateContext = toStartOfTimeline ? this.oldState : this.currentState;
|
||||
for (var i = 0; i < events.length; i++) {
|
||||
// set sender and target properties
|
||||
events[i].sender = stateContext.getSentinelMember(
|
||||
events[i].getSender()
|
||||
);
|
||||
if (events[i].getType() === "m.room.member") {
|
||||
events[i].target = stateContext.getSentinelMember(
|
||||
events[i].getStateKey()
|
||||
);
|
||||
}
|
||||
|
||||
setEventMetadata(events[i], stateContext, toStartOfTimeline);
|
||||
// modify state
|
||||
if (events[i].isState()) {
|
||||
// room state has no concept of 'old' or 'current', but we want the
|
||||
// room state to regress back to previous values if toStartOfTimeline
|
||||
// is set, which means inspecting prev_content if it exists. This
|
||||
// is done by toggling the forwardLooking flag.
|
||||
if (toStartOfTimeline) {
|
||||
events[i].forwardLooking = false;
|
||||
}
|
||||
stateContext.setStateEvents([events[i]]);
|
||||
}
|
||||
// TODO: pass through filter to see if this should be added to the timeline.
|
||||
@@ -146,6 +130,12 @@ Room.prototype.addEvents = function(events, duplicateStrategy) {
|
||||
for (var j = 0; j < this.timeline.length; j++) {
|
||||
if (this.timeline[j].getId() === events[i].getId()) {
|
||||
if (duplicateStrategy === "replace") {
|
||||
// still need to set the right metadata on this event
|
||||
setEventMetadata(
|
||||
events[i],
|
||||
this.currentState,
|
||||
false
|
||||
);
|
||||
this.timeline[j] = events[i];
|
||||
// skip the insert so we don't add this event twice.
|
||||
// Don't break in case we replace multiple events.
|
||||
@@ -187,6 +177,27 @@ Room.prototype.recalculate = function(userId) {
|
||||
}
|
||||
};
|
||||
|
||||
function setEventMetadata(event, stateContext, toStartOfTimeline) {
|
||||
// set sender and target properties
|
||||
event.sender = stateContext.getSentinelMember(
|
||||
event.getSender()
|
||||
);
|
||||
if (event.getType() === "m.room.member") {
|
||||
event.target = stateContext.getSentinelMember(
|
||||
event.getStateKey()
|
||||
);
|
||||
}
|
||||
if (event.isState()) {
|
||||
// room state has no concept of 'old' or 'current', but we want the
|
||||
// room state to regress back to previous values if toStartOfTimeline
|
||||
// is set, which means inspecting prev_content if it exists. This
|
||||
// is done by toggling the forwardLooking flag.
|
||||
if (toStartOfTimeline) {
|
||||
event.forwardLooking = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This is an internal method. Calculates the name of the room from the current
|
||||
* room state.
|
||||
|
||||
Reference in New Issue
Block a user