Let the tile contents specify whether it requires a sender profile or not. Fixes #250.

This commit is contained in:
David Baker 2015-10-23 09:24:25 +01:00
parent 08270b26ee
commit 7c6fb36520
3 changed files with 15 additions and 7 deletions

View File

@ -19,22 +19,22 @@ limitations under the License.
var React = require('react'); var React = require('react');
var EventAsTextTileController = require('matrix-react-sdk/lib/controllers/molecules/EventAsTextTile') var EventAsTextTileController = require('matrix-react-sdk/lib/controllers/molecules/EventAsTextTile')
var sdk = require('matrix-react-sdk')
var TextForEvent = require('matrix-react-sdk/lib/TextForEvent'); var TextForEvent = require('matrix-react-sdk/lib/TextForEvent');
module.exports = React.createClass({ module.exports = React.createClass({
displayName: 'EventAsTextTile', displayName: 'EventAsTextTile',
mixins: [EventAsTextTileController], mixins: [EventAsTextTileController],
render: function() { statics: {
var MessageTimestamp = sdk.getComponent('atoms.MessageTimestamp'); needsSenderProfile: function() {
var MemberAvatar = sdk.getComponent('atoms.MemberAvatar'); return false;
}
},
render: function() {
var text = TextForEvent.textForEvent(this.props.mxEvent); var text = TextForEvent.textForEvent(this.props.mxEvent);
if (text == null || text.length == 0) return null; if (text == null || text.length == 0) return null;
var timestamp = this.props.last ? <MessageTimestamp ts={this.props.mxEvent.getTs()} /> : null;
var avatar = this.props.mxEvent.sender ? <MemberAvatar member={this.props.mxEvent.sender} /> : null;
return ( return (
<div className="mx_EventAsTextTile"> <div className="mx_EventAsTextTile">
{TextForEvent.textForEvent(this.props.mxEvent)} {TextForEvent.textForEvent(this.props.mxEvent)}

View File

@ -114,8 +114,10 @@ module.exports = React.createClass({
</div> </div>
); );
} }
if (EventTileType.needsSenderProfile()) {
sender = <SenderProfile mxEvent={this.props.mxEvent} aux={aux} />; sender = <SenderProfile mxEvent={this.props.mxEvent} aux={aux} />;
} }
}
return ( return (
<div className={classes}> <div className={classes}>
{ avatar } { avatar }

View File

@ -28,6 +28,12 @@ module.exports = React.createClass({
displayName: 'MessageTile', displayName: 'MessageTile',
mixins: [MessageTileController], mixins: [MessageTileController],
statics: {
needsSenderProfile: function() {
return true;
}
},
render: function() { render: function() {
var UnknownMessageTile = sdk.getComponent('molecules.UnknownMessageTile'); var UnknownMessageTile = sdk.getComponent('molecules.UnknownMessageTile');