mirror of https://github.com/vector-im/riot-web
Add topic changes to timeline by adding a tile that just uses TextForEvent
parent
b60a3b61bb
commit
5c7bef3107
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Copyright 2015 OpenMarket Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var React = require('react');
|
||||
|
||||
var EventAsTextTileController = require("../../../../src/controllers/molecules/EventAsTextTile");
|
||||
|
||||
var TextForEvent = require("../../../../src/TextForEvent");
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'EventAsTextTile',
|
||||
mixins: [EventAsTextTileController],
|
||||
|
||||
render: function() {
|
||||
var text = TextForEvent.textForEvent(this.props.mxEvent);
|
||||
return (
|
||||
<span ref="content" className="mx_EventAsTextTile mx_MessageTile_content">
|
||||
{TextForEvent.textForEvent(this.props.mxEvent)}
|
||||
</span>
|
||||
);
|
||||
},
|
||||
});
|
||||
|
|
@ -106,6 +106,7 @@ require('../skins/base/views/molecules/voip/IncomingCallBox');
|
|||
require('../skins/base/views/molecules/voip/MCallInviteTile');
|
||||
require('../skins/base/views/molecules/voip/MCallAnswerTile');
|
||||
require('../skins/base/views/molecules/voip/MCallHangupTile');
|
||||
require('../skins/base/views/molecules/EventAsTextTile');
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -49,6 +49,12 @@ function textForMemberEvent(ev) {
|
|||
}
|
||||
};
|
||||
|
||||
function textForTopicEvent(ev) {
|
||||
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
||||
|
||||
return senderDisplayName + ' changed the topic to, "' + ev.getContent().topic + '"';
|
||||
};
|
||||
|
||||
function textForMessageEvent(ev) {
|
||||
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
||||
|
||||
|
@ -63,6 +69,7 @@ function textForMessageEvent(ev) {
|
|||
|
||||
var handlers = {
|
||||
'm.room.message': textForMessageEvent,
|
||||
'm.room.topic': textForTopicEvent,
|
||||
'm.room.member': textForMemberEvent
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
Copyright 2015 OpenMarket Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
};
|
||||
|
|
@ -33,7 +33,8 @@ var tileTypes = {
|
|||
'm.room.member': ComponentBroker.get('molecules/MRoomMemberTile'),
|
||||
'm.call.invite': ComponentBroker.get('molecules/voip/MCallInviteTile'),
|
||||
'm.call.answer': ComponentBroker.get('molecules/voip/MCallAnswerTile'),
|
||||
'm.call.hangup': ComponentBroker.get('molecules/voip/MCallHangupTile')
|
||||
'm.call.hangup': ComponentBroker.get('molecules/voip/MCallHangupTile'),
|
||||
'm.room.topic': ComponentBroker.get('molecules/EventAsTextTile'),
|
||||
};
|
||||
|
||||
var DateSeparator = ComponentBroker.get('molecules/DateSeparator');
|
||||
|
|
Loading…
Reference in New Issue