diff --git a/src/components/views/messages/MFileMessage.js b/src/components/views/messages/MFileBody.js
similarity index 98%
rename from src/components/views/messages/MFileMessage.js
rename to src/components/views/messages/MFileBody.js
index 93e366a2cd..be7f2f0593 100644
--- a/src/components/views/messages/MFileMessage.js
+++ b/src/components/views/messages/MFileBody.js
@@ -21,7 +21,7 @@ var filesize = require('filesize');
var MatrixClientPeg = require('../../../MatrixClientPeg');
module.exports = React.createClass({
- displayName: 'MFileMessage',
+ displayName: 'MFileBody',
presentableTextForFile: function(content) {
var linkText = 'Attachment';
diff --git a/src/components/views/messages/MImageMessage.js b/src/components/views/messages/MImageBody.js
similarity index 99%
rename from src/components/views/messages/MImageMessage.js
rename to src/components/views/messages/MImageBody.js
index dee5c37c1e..93e2ce1b06 100644
--- a/src/components/views/messages/MImageMessage.js
+++ b/src/components/views/messages/MImageBody.js
@@ -24,7 +24,7 @@ var Modal = require('../../../Modal');
var sdk = require('../../../index');
module.exports = React.createClass({
- displayName: 'MImageMessage',
+ displayName: 'MImageBody',
thumbHeight: function(fullWidth, fullHeight, thumbWidth, thumbHeight) {
if (!fullWidth || !fullHeight) {
diff --git a/src/components/views/messages/MRoomMemberEvent.js b/src/components/views/messages/MRoomMemberEvent.js
deleted file mode 100644
index 6e73519f2e..0000000000
--- a/src/components/views/messages/MRoomMemberEvent.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-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 sdk = require('../../../index');
-var TextForEvent = require('../../../TextForEvent');
-
-module.exports = React.createClass({
- displayName: 'MRoomMemberEvent',
-
- getMemberEventText: function() {
- return TextForEvent.textForEvent(this.props.mxEvent);
- },
-
- render: function() {
- // XXX: for now, just cheekily borrow the css from message tile...
- var timestamp = this.props.last ? : null;
- var text = this.getMemberEventText();
- if (!text) return
;
- var MessageTimestamp = sdk.getComponent('messages.MessageTimestamp');
- var MemberAvatar = sdk.getComponent('avatars.MemberAvatar');
- return (
-
-
-
-
- { timestamp }
-
-
- { text }
-
-
- );
- },
-});
-
diff --git a/src/components/views/messages/MVideoMessage.js b/src/components/views/messages/MVideoBody.js
similarity index 98%
rename from src/components/views/messages/MVideoMessage.js
rename to src/components/views/messages/MVideoBody.js
index a9139e2b3f..0d022f1648 100644
--- a/src/components/views/messages/MVideoMessage.js
+++ b/src/components/views/messages/MVideoBody.js
@@ -24,7 +24,7 @@ var Modal = require('../../../Modal');
var sdk = require('../../../index');
module.exports = React.createClass({
- displayName: 'MVideoMessage',
+ displayName: 'MVideoBody',
thumbScale: function(fullWidth, fullHeight, thumbWidth, thumbHeight) {
if (!fullWidth || !fullHeight) {
diff --git a/src/components/views/messages/Message.js b/src/components/views/messages/MessageEvent.js
similarity index 73%
rename from src/components/views/messages/Message.js
rename to src/components/views/messages/MessageEvent.js
index 2318ca4a66..164bf11930 100644
--- a/src/components/views/messages/Message.js
+++ b/src/components/views/messages/MessageEvent.js
@@ -20,7 +20,7 @@ var React = require('react');
var sdk = require('../../../index');
module.exports = React.createClass({
- displayName: 'Message',
+ displayName: 'MessageEvent',
statics: {
needsSenderProfile: function() {
@@ -29,15 +29,15 @@ module.exports = React.createClass({
},
render: function() {
- var UnknownMessageTile = sdk.getComponent('messages.UnknownMessage');
+ var UnknownMessageTile = sdk.getComponent('messages.UnknownBody');
var tileTypes = {
- 'm.text': sdk.getComponent('messages.TextualMessage'),
- 'm.notice': sdk.getComponent('messages.TextualMessage'),
- 'm.emote': sdk.getComponent('messages.TextualMessage'),
- 'm.image': sdk.getComponent('messages.MImageMessage'),
- 'm.file': sdk.getComponent('messages.MFileMessage'),
- 'm.video': sdk.getComponent('messages.MVideoMessage')
+ 'm.text': sdk.getComponent('messages.TextualBody'),
+ 'm.notice': sdk.getComponent('messages.TextualBody'),
+ 'm.emote': sdk.getComponent('messages.TextualBody'),
+ 'm.image': sdk.getComponent('messages.MImageBody'),
+ 'm.file': sdk.getComponent('messages.MFileBody'),
+ 'm.video': sdk.getComponent('messages.MVideoBody')
};
var content = this.props.mxEvent.getContent();
diff --git a/src/components/views/messages/TextualMessage.js b/src/components/views/messages/TextualBody.js
similarity index 98%
rename from src/components/views/messages/TextualMessage.js
rename to src/components/views/messages/TextualBody.js
index f90b5ec738..7134d5faf4 100644
--- a/src/components/views/messages/TextualMessage.js
+++ b/src/components/views/messages/TextualBody.js
@@ -26,7 +26,7 @@ var linkifyMatrix = require('../../../linkify-matrix');
linkifyMatrix(linkify);
module.exports = React.createClass({
- displayName: 'TextualMessage',
+ displayName: 'TextualBody',
componentDidMount: function() {
linkifyElement(this.refs.content, linkifyMatrix.options);
diff --git a/src/components/views/messages/UnknownMessage.js b/src/components/views/messages/UnknownBody.js
similarity index 96%
rename from src/components/views/messages/UnknownMessage.js
rename to src/components/views/messages/UnknownBody.js
index c0392cbaf5..ae49af198d 100644
--- a/src/components/views/messages/UnknownMessage.js
+++ b/src/components/views/messages/UnknownBody.js
@@ -19,7 +19,7 @@ limitations under the License.
var React = require('react');
module.exports = React.createClass({
- displayName: 'UnknownMessage',
+ displayName: 'UnknownBody',
render: function() {
var content = this.props.mxEvent.getContent();
diff --git a/src/components/views/messages/Event.js b/src/components/views/rooms/EventTile.js
similarity index 94%
rename from src/components/views/messages/Event.js
rename to src/components/views/rooms/EventTile.js
index 6b1acc3690..81f5ca3a4a 100644
--- a/src/components/views/messages/Event.js
+++ b/src/components/views/rooms/EventTile.js
@@ -37,7 +37,7 @@ try {
}
var eventTileTypes = {
- 'm.room.message': 'messages.Message',
+ 'm.room.message': 'messages.MessageEvent',
'm.room.member' : 'messages.TextualEvent',
'm.call.invite' : 'messages.TextualEvent',
'm.call.answer' : 'messages.TextualEvent',
@@ -48,6 +48,17 @@ var eventTileTypes = {
var MAX_READ_AVATARS = 5;
+// Our component structure for EventTiles on the timeline is:
+//
+// .-EventTile------------------------------------------------.
+// | MemberAvatar (SenderProfile) TimeStamp |
+// | .-{Message,Textual}Event---------------. Read Avatars |
+// | | .-MFooBody-------------------. | |
+// | | | (only if MessageEvent) | | |
+// | | '----------------------------' | |
+// | '--------------------------------------' |
+// '----------------------------------------------------------'
+
module.exports = React.createClass({
displayName: 'Event',
diff --git a/src/components/views/messages/MessageComposer.js b/src/components/views/rooms/MessageComposer.js
similarity index 100%
rename from src/components/views/messages/MessageComposer.js
rename to src/components/views/rooms/MessageComposer.js