mirror of
https://github.com/element-hq/element-web
synced 2024-11-28 12:28:50 +03:00
Merge pull request #2973 from matrix-org/bwindels/message-edit-editor2
Message editing: adjust to js-sdk changes of marking original event as replaced
This commit is contained in:
commit
76570beb3c
8 changed files with 11 additions and 5 deletions
|
@ -526,6 +526,7 @@ module.exports = React.createClass({
|
|||
<EventTile mxEvent={mxEv}
|
||||
continuation={continuation}
|
||||
isRedacted={mxEv.isRedacted()}
|
||||
replacingEventId={mxEv.replacingEventId()}
|
||||
onHeightChanged={this._onHeightChanged}
|
||||
readReceipts={readReceipts}
|
||||
readReceiptMap={this._readReceiptMap}
|
||||
|
|
|
@ -507,7 +507,7 @@ const TimelinePanel = React.createClass({
|
|||
this.forceUpdate();
|
||||
},
|
||||
|
||||
onRoomReplaceEvent: function(replacedEvent, newEvent, room) {
|
||||
onRoomReplaceEvent: function(replacedEvent, room) {
|
||||
if (this.unmounted) return;
|
||||
|
||||
// ignore events for other rooms
|
||||
|
@ -515,7 +515,7 @@ const TimelinePanel = React.createClass({
|
|||
|
||||
// we could skip an update if the event isn't in our timeline,
|
||||
// but that's probably an early optimisation.
|
||||
this._reloadEvents();
|
||||
this.forceUpdate();
|
||||
},
|
||||
|
||||
onRoomReceipt: function(ev, room) {
|
||||
|
|
|
@ -118,7 +118,7 @@ export default class MessageEditor extends React.Component {
|
|||
"m.new_content": newContent,
|
||||
"m.relates_to": {
|
||||
"rel_type": "m.replace",
|
||||
"event_id": this.props.event.getOriginalId(),
|
||||
"event_id": this.props.event.getId(),
|
||||
},
|
||||
}, newContent);
|
||||
|
||||
|
|
|
@ -89,6 +89,7 @@ module.exports = React.createClass({
|
|||
showUrlPreview={this.props.showUrlPreview}
|
||||
tileShape={this.props.tileShape}
|
||||
maxImageHeight={this.props.maxImageHeight}
|
||||
replacingEventId={this.props.replacingEventId}
|
||||
onHeightChanged={this.props.onHeightChanged} />;
|
||||
},
|
||||
});
|
||||
|
|
|
@ -137,6 +137,7 @@ module.exports = React.createClass({
|
|||
// exploit that events are immutable :)
|
||||
return (nextProps.mxEvent.getId() !== this.props.mxEvent.getId() ||
|
||||
nextProps.highlights !== this.props.highlights ||
|
||||
nextProps.replacingEventId !== this.props.replacingEventId ||
|
||||
nextProps.highlightLink !== this.props.highlightLink ||
|
||||
nextProps.showUrlPreview !== this.props.showUrlPreview ||
|
||||
nextState.links !== this.state.links ||
|
||||
|
|
|
@ -779,6 +779,7 @@ module.exports = withMatrixClient(React.createClass({
|
|||
{ thread }
|
||||
<EventTileType ref="tile"
|
||||
mxEvent={this.props.mxEvent}
|
||||
replacingEventId={this.props.replacingEventId}
|
||||
highlights={this.props.highlights}
|
||||
highlightLink={this.props.highlightLink}
|
||||
showUrlPreview={this.props.showUrlPreview}
|
||||
|
|
|
@ -57,9 +57,10 @@ function parseHtmlMessage(html) {
|
|||
export function parseEvent(event) {
|
||||
const content = event.getContent();
|
||||
if (content.format === "org.matrix.custom.html") {
|
||||
return parseHtmlMessage(content.formatted_body);
|
||||
return parseHtmlMessage(content.formatted_body || "");
|
||||
} else {
|
||||
const lines = content.body.split("\n");
|
||||
const body = content.body || "";
|
||||
const lines = body.split("\n");
|
||||
const parts = lines.reduce((parts, line, i) => {
|
||||
const isLast = i === lines.length - 1;
|
||||
const text = new PlainPart(line);
|
||||
|
|
|
@ -45,6 +45,7 @@ export default function shouldHideEvent(ev) {
|
|||
|
||||
// Hide redacted events
|
||||
if (ev.isRedacted() && !isEnabled('showRedactions')) return true;
|
||||
if (ev.isRelation("m.replace")) return true;
|
||||
|
||||
const eventDiff = memberEventDiff(ev);
|
||||
|
||||
|
|
Loading…
Reference in a new issue