Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80698 views
1
/**
2
* This file is provided by Facebook for testing and evaluation purposes
3
* only. Facebook reserves all rights not expressly granted.
4
*
5
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
8
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
9
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
10
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
11
*/
12
13
var ChatThreadActionCreators = require('../actions/ChatThreadActionCreators');
14
var React = require('react');
15
var cx = require('react/lib/cx');
16
17
var ReactPropTypes = React.PropTypes;
18
19
var ThreadListItem = React.createClass({
20
21
propTypes: {
22
thread: ReactPropTypes.object,
23
currentThreadID: ReactPropTypes.string
24
},
25
26
render: function() {
27
var thread = this.props.thread;
28
var lastMessage = thread.lastMessage;
29
return (
30
<li
31
className={cx({
32
'thread-list-item': true,
33
'active': thread.id === this.props.currentThreadID
34
})}
35
onClick={this._onClick}>
36
<h5 className="thread-name">{thread.name}</h5>
37
<div className="thread-time">
38
{lastMessage.date.toLocaleTimeString()}
39
</div>
40
<div className="thread-last-message">
41
{lastMessage.text}
42
</div>
43
</li>
44
);
45
},
46
47
_onClick: function() {
48
ChatThreadActionCreators.clickThread(this.props.thread.id);
49
}
50
51
});
52
53
module.exports = ThreadListItem;
54
55