show redacted stickers like other redacted messages

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/21833/head
Michael Telatynski 2018-06-13 09:28:35 +01:00
parent e858cf3bcb
commit 846c14062a
No known key found for this signature in database
GPG Key ID: 3F879DA5AD802A5E
2 changed files with 10 additions and 3 deletions

View File

@ -69,7 +69,8 @@ module.exports = React.createClass({
if (msgtype && bodyTypes[msgtype]) { if (msgtype && bodyTypes[msgtype]) {
BodyType = bodyTypes[msgtype]; BodyType = bodyTypes[msgtype];
} else if (this.props.mxEvent.getType() === 'm.sticker') { } else if (this.props.mxEvent.getType() === 'm.sticker') {
BodyType = sdk.getComponent('messages.MStickerBody'); // if sticker is redacted, show UnknownBody otherwise it'll fall through to elif
BodyType = this.props.mxEvent.isRedacted() ? UnknownBody : sdk.getComponent('messages.MStickerBody');
} else if (content.url) { } else if (content.url) {
// Fallback to MFileBody if there's a content URL // Fallback to MFileBody if there's a content URL
BodyType = bodyTypes['m.file']; BodyType = bodyTypes['m.file'];

View File

@ -490,7 +490,7 @@ module.exports = withMatrixClient(React.createClass({
} }
const isSending = (['sending', 'queued', 'encrypting'].indexOf(this.props.eventSendStatus) !== -1); const isSending = (['sending', 'queued', 'encrypting'].indexOf(this.props.eventSendStatus) !== -1);
const isRedacted = (eventType === 'm.room.message') && this.props.isRedacted; const isRedacted = isMessageEvent(this.props.mxEvent) && this.props.isRedacted;
const isEncryptionFailure = this.props.mxEvent.isDecryptionFailure(); const isEncryptionFailure = this.props.mxEvent.isDecryptionFailure();
const classes = classNames({ const classes = classNames({
@ -715,9 +715,15 @@ module.exports = withMatrixClient(React.createClass({
}, },
})); }));
// XXX this'll eventually be dynamic based on the fields once we have extensible event types
const messageTypes = ['m.room.message', 'm.sticker'];
function isMessageEvent(ev) {
return (messageTypes.includes(ev.getType()));
}
module.exports.haveTileForEvent = function(e) { module.exports.haveTileForEvent = function(e) {
// Only messages have a tile (black-rectangle) if redacted // Only messages have a tile (black-rectangle) if redacted
if (e.isRedacted() && e.getType() !== 'm.room.message') return false; if (e.isRedacted() && !isMessageEvent(e)) return false;
const handler = getHandlerTile(e); const handler = getHandlerTile(e);
if (handler === undefined) return false; if (handler === undefined) return false;