mirror of
https://github.com/SchildiChat/element-web.git
synced 2024-10-01 01:26:12 -04:00
factor out MRoomMemberTile, MCallInviteTile, MCallAnswerTile and MCallHangupTile to just use EventAsTextTile and thus reduce duplication enormously
This commit is contained in:
parent
fec266f1c0
commit
001d1c50ef
@ -1,50 +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 MatrixClientPeg = require("../../../../../src/MatrixClientPeg");
|
|
||||||
var ComponentBroker = require('../../../../../src/ComponentBroker');
|
|
||||||
var MCallAnswerTileController = require("../../../../../src/controllers/molecules/voip/MCallAnswerTile");
|
|
||||||
var MessageTimestamp = ComponentBroker.get('atoms/MessageTimestamp');
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MCallAnswerTile',
|
|
||||||
mixins: [MCallAnswerTileController],
|
|
||||||
|
|
||||||
getAnswerText: function(event) {
|
|
||||||
var senderName = event.sender ? event.sender.name : "Someone";
|
|
||||||
return senderName + " answered the call.";
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
// XXX: for now, just cheekily borrow the css from message tile...
|
|
||||||
return (
|
|
||||||
<div className="mx_MessageTile mx_MessageTile_notice">
|
|
||||||
<div className="mx_MessageTile_avatar">
|
|
||||||
<MemberAvatar member={this.props.mxEvent.sender} />
|
|
||||||
</div>
|
|
||||||
<MessageTimestamp ts={this.props.mxEvent.getTs()} />
|
|
||||||
<span className="mx_SenderProfile"></span>
|
|
||||||
<span className="mx_MessageTile_content">
|
|
||||||
{this.getAnswerText(this.props.mxEvent)}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
@ -1,50 +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 MatrixClientPeg = require("../../../../../src/MatrixClientPeg");
|
|
||||||
var ComponentBroker = require('../../../../../src/ComponentBroker');
|
|
||||||
var MCallHangupTileController = require("../../../../../src/controllers/molecules/voip/MCallHangupTile");
|
|
||||||
var MessageTimestamp = ComponentBroker.get('atoms/MessageTimestamp');
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MCallHangupTile',
|
|
||||||
mixins: [MCallHangupTileController],
|
|
||||||
|
|
||||||
getHangupText: function(event) {
|
|
||||||
var senderName = event.sender ? event.sender.name : "Someone";
|
|
||||||
return senderName + " ended the call.";
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
// XXX: for now, just cheekily borrow the css from message tile...
|
|
||||||
return (
|
|
||||||
<div className="mx_MessageTile mx_MessageTile_notice">
|
|
||||||
<div className="mx_MessageTile_avatar">
|
|
||||||
<MemberAvatar member={this.props.mxEvent.sender} />
|
|
||||||
</div>
|
|
||||||
<MessageTimestamp ts={this.props.mxEvent.getTs()} />
|
|
||||||
<span className="mx_SenderProfile"></span>
|
|
||||||
<span className="mx_MessageTile_content">
|
|
||||||
{this.getHangupText(this.props.mxEvent)}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
@ -1,56 +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 MatrixClientPeg = require("../../../../../src/MatrixClientPeg");
|
|
||||||
var ComponentBroker = require('../../../../../src/ComponentBroker');
|
|
||||||
var MCallInviteTileController = require("../../../../../src/controllers/molecules/voip/MCallInviteTile");
|
|
||||||
var MessageTimestamp = ComponentBroker.get('atoms/MessageTimestamp');
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MCallInviteTile',
|
|
||||||
mixins: [MCallInviteTileController],
|
|
||||||
|
|
||||||
getInviteText: function(event) {
|
|
||||||
var senderName = event.sender ? event.sender.name : "Someone";
|
|
||||||
// FIXME: Find a better way to determine this from the event?
|
|
||||||
var type = "voice";
|
|
||||||
if (event.getContent().offer && event.getContent().offer.sdp &&
|
|
||||||
event.getContent().offer.sdp.indexOf('m=video') !== -1) {
|
|
||||||
type = "video";
|
|
||||||
}
|
|
||||||
return senderName + " placed a " + type + " call.";
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
// XXX: for now, just cheekily borrow the css from message tile...
|
|
||||||
return (
|
|
||||||
<div className="mx_MessageTile mx_MessageTile_notice">
|
|
||||||
<div className="mx_MessageTile_avatar">
|
|
||||||
<MemberAvatar member={this.props.mxEvent.sender} />
|
|
||||||
</div>
|
|
||||||
<MessageTimestamp ts={this.props.mxEvent.getTs()} />
|
|
||||||
<span className="mx_SenderProfile"></span>
|
|
||||||
<span className="mx_MessageTile_content">
|
|
||||||
{this.getInviteText(this.props.mxEvent)}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
@ -75,7 +75,6 @@ require('../skins/base/views/molecules/MNoticeTile');
|
|||||||
require('../skins/base/views/molecules/MEmoteTile');
|
require('../skins/base/views/molecules/MEmoteTile');
|
||||||
require('../skins/base/views/molecules/MImageTile');
|
require('../skins/base/views/molecules/MImageTile');
|
||||||
require('../skins/base/views/molecules/MFileTile');
|
require('../skins/base/views/molecules/MFileTile');
|
||||||
require('../skins/base/views/molecules/MRoomMemberTile');
|
|
||||||
require('../skins/base/views/molecules/RoomHeader');
|
require('../skins/base/views/molecules/RoomHeader');
|
||||||
require('../skins/base/views/molecules/MessageComposer');
|
require('../skins/base/views/molecules/MessageComposer');
|
||||||
require('../skins/base/views/molecules/ProgressBar');
|
require('../skins/base/views/molecules/ProgressBar');
|
||||||
@ -109,9 +108,6 @@ require('../skins/base/views/atoms/ImageView');
|
|||||||
require('../skins/base/views/molecules/voip/VideoView');
|
require('../skins/base/views/molecules/voip/VideoView');
|
||||||
require('../skins/base/views/molecules/voip/CallView');
|
require('../skins/base/views/molecules/voip/CallView');
|
||||||
require('../skins/base/views/molecules/voip/IncomingCallBox');
|
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');
|
require('../skins/base/views/molecules/EventAsTextTile');
|
||||||
require('../skins/base/views/molecules/MemberInfo');
|
require('../skins/base/views/molecules/MemberInfo');
|
||||||
require('../skins/base/views/organisms/ErrorDialog');
|
require('../skins/base/views/organisms/ErrorDialog');
|
||||||
|
@ -67,10 +67,34 @@ function textForMessageEvent(ev) {
|
|||||||
return message;
|
return message;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function textForCallAnswerEvent(event) {
|
||||||
|
var senderName = event.sender ? event.sender.name : "Someone";
|
||||||
|
return senderName + " answered the call.";
|
||||||
|
};
|
||||||
|
|
||||||
|
function textForCallHangupEvent(event) {
|
||||||
|
var senderName = event.sender ? event.sender.name : "Someone";
|
||||||
|
return senderName + " ended the call.";
|
||||||
|
};
|
||||||
|
|
||||||
|
function textForCallInviteEvent(event) {
|
||||||
|
var senderName = event.sender ? event.sender.name : "Someone";
|
||||||
|
// FIXME: Find a better way to determine this from the event?
|
||||||
|
var type = "voice";
|
||||||
|
if (event.getContent().offer && event.getContent().offer.sdp &&
|
||||||
|
event.getContent().offer.sdp.indexOf('m=video') !== -1) {
|
||||||
|
type = "video";
|
||||||
|
}
|
||||||
|
return senderName + " placed a " + type + " call.";
|
||||||
|
};
|
||||||
|
|
||||||
var handlers = {
|
var handlers = {
|
||||||
'm.room.message': textForMessageEvent,
|
'm.room.message': textForMessageEvent,
|
||||||
'm.room.topic': textForTopicEvent,
|
'm.room.topic': textForTopicEvent,
|
||||||
'm.room.member': textForMemberEvent
|
'm.room.member': textForMemberEvent,
|
||||||
|
'm.call.invite': textForCallInviteEvent,
|
||||||
|
'm.call.answer': textForCallAnswerEvent,
|
||||||
|
'm.call.hangup': textForCallHangupEvent,
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -1,21 +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';
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
};
|
|
||||||
|
|
@ -1,20 +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';
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
};
|
|
@ -1,20 +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';
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
};
|
|
@ -1,20 +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';
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
};
|
|
@ -36,11 +36,11 @@ var Notifier = ComponentBroker.get('organisms/Notifier');
|
|||||||
|
|
||||||
var tileTypes = {
|
var tileTypes = {
|
||||||
'm.room.message': ComponentBroker.get('molecules/MessageTile'),
|
'm.room.message': ComponentBroker.get('molecules/MessageTile'),
|
||||||
'm.room.member': ComponentBroker.get('molecules/MRoomMemberTile'),
|
'm.room.member' : ComponentBroker.get('molecules/EventAsTextTile'),
|
||||||
'm.call.invite': ComponentBroker.get('molecules/voip/MCallInviteTile'),
|
'm.call.invite' : ComponentBroker.get('molecules/EventAsTextTile'),
|
||||||
'm.call.answer': ComponentBroker.get('molecules/voip/MCallAnswerTile'),
|
'm.call.answer' : ComponentBroker.get('molecules/EventAsTextTile'),
|
||||||
'm.call.hangup': ComponentBroker.get('molecules/voip/MCallHangupTile'),
|
'm.call.hangup' : ComponentBroker.get('molecules/EventAsTextTile'),
|
||||||
'm.room.topic': ComponentBroker.get('molecules/EventAsTextTile'),
|
'm.room.topic' : ComponentBroker.get('molecules/EventAsTextTile'),
|
||||||
};
|
};
|
||||||
|
|
||||||
var DateSeparator = ComponentBroker.get('molecules/DateSeparator');
|
var DateSeparator = ComponentBroker.get('molecules/DateSeparator');
|
||||||
|
Loading…
Reference in New Issue
Block a user