1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-12-10 07:22:27 +03:00

support marking an as replacing another

and take if the timestamp of the original event if so
also helper methods
This commit is contained in:
Bruno Windels
2019-05-14 15:23:22 +01:00
parent 0161664b6c
commit 18cd017f58

View File

@@ -122,6 +122,7 @@ module.exports.MatrixEvent = function MatrixEvent(
this.error = null;
this.forwardLooking = true;
this._pushActions = null;
this._replacedEvent = null;
this._clearEvent = {};
@@ -208,6 +209,9 @@ utils.extend(module.exports.MatrixEvent.prototype, {
* @return {Number} The event timestamp, e.g. <code>1433502692297</code>
*/
getTs: function() {
if (this._replacedEvent) {
return this._replacedEvent.getTs();
}
return this.event.origin_server_ts;
},
@@ -216,6 +220,9 @@ utils.extend(module.exports.MatrixEvent.prototype, {
* @return {Date} The event date, e.g. <code>new Date(1433502692297)</code>
*/
getDate: function() {
if (this._replacedEvent) {
return this._replacedEvent.getDate();
}
return this.event.origin_server_ts ? new Date(this.event.origin_server_ts) : null;
},
@@ -742,6 +749,30 @@ utils.extend(module.exports.MatrixEvent.prototype, {
const relation = content && content["m.relates_to"];
return relation && relation.rel_type && relation.event_id;
},
isReplacement() {
const content = this.getContent();
const relation = content && content["m.relates_to"];
return relation && relation.rel_type === "m.replace" && relation.event_id;
},
setReplacedEvent(replacedEvent) {
this._replacedEvent = replacedEvent;
},
getReplacedEvent() {
return this._replacedEvent;
},
getOriginalId() {
const content = this.getContent();
const relation = content && content["m.relates_to"];
if (relation && relation.rel_type === "m.replace") {
return relation.event_id;
} else {
return this.getId();
}
},
});