summaryrefslogtreecommitdiffstats
path: root/web/react/components/post_list.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'web/react/components/post_list.jsx')
-rw-r--r--web/react/components/post_list.jsx43
1 files changed, 31 insertions, 12 deletions
diff --git a/web/react/components/post_list.jsx b/web/react/components/post_list.jsx
index 5b0b1f79a..6fa87ca4a 100644
--- a/web/react/components/post_list.jsx
+++ b/web/react/components/post_list.jsx
@@ -15,6 +15,8 @@ var AppDispatcher = require('../dispatcher/app_dispatcher.jsx');
var Constants = require('../utils/constants.jsx');
var ActionTypes = Constants.ActionTypes;
+import {strings} from '../utils/config.js';
+
export default class PostList extends React.Component {
constructor() {
super();
@@ -51,8 +53,10 @@ export default class PostList extends React.Component {
if (deletedPosts && Object.keys(deletedPosts).length > 0) {
for (var pid in deletedPosts) {
- postList.posts[pid] = deletedPosts[pid];
- postList.order.unshift(pid);
+ if (deletedPosts.hasOwnProperty(pid)) {
+ postList.posts[pid] = deletedPosts[pid];
+ postList.order.unshift(pid);
+ }
}
postList.order.sort(function postSort(a, b) {
@@ -71,7 +75,9 @@ export default class PostList extends React.Component {
if (pendingPostList) {
postList.order = pendingPostList.order.concat(postList.order);
for (var ppid in pendingPostList.posts) {
- postList.posts[ppid] = pendingPostList.posts[ppid];
+ if (pendingPostList.posts.hasOwnProperty(ppid)) {
+ postList.posts[ppid] = pendingPostList.posts[ppid];
+ }
}
}
}
@@ -267,7 +273,6 @@ export default class PostList extends React.Component {
}
}
onSocketChange(msg) {
- var postList;
var post;
if (msg.action === 'posted' || msg.action === 'post_edited') {
post = JSON.parse(msg.props.post);
@@ -280,7 +285,6 @@ export default class PostList extends React.Component {
}
post = JSON.parse(msg.props.post);
- postList = this.state.postList;
PostStore.storeUnseenDeletedPost(post);
PostStore.removePost(post, true);
@@ -401,6 +405,14 @@ export default class PostList extends React.Component {
>
<i className='fa fa-pencil'></i>Set a description
</a>
+ <a
+ className='intro-links'
+ href='#'
+ data-toggle='modal'
+ data-target='#channel_invite'
+ >
+ <i className='fa fa-user-plus'></i>Invite others to this channel
+ </a>
</div>
);
}
@@ -506,7 +518,7 @@ export default class PostList extends React.Component {
var postCtl = (
<Post
- key={post.id}
+ key={post.id + 'postKey'}
ref={post.id}
sameUser={sameUser}
sameRoot={sameRoot}
@@ -547,7 +559,7 @@ export default class PostList extends React.Component {
>
<hr
className='separator__hr'
- />
+ />
<div className='separator__text'>New Messages</div>
</div>
);
@@ -567,14 +579,14 @@ export default class PostList extends React.Component {
var order = this.state.postList.order;
var channelId = this.state.channel.id;
- $(this.refs.loadmore.getDOMNode()).text('Retrieving more messages...');
+ $(React.findDOMNode(this.refs.loadmore)).text('Retrieving more messages...');
Client.getPostsPage(
channelId,
order.length,
Constants.POST_CHUNK_SIZE,
function success(data) {
- $(this.refs.loadmore.getDOMNode()).text('Load more messages');
+ $(React.findDOMNode(this.refs.loadmore)).text('Load more messages');
this.gotMorePosts = true;
this.setState({numToDisplay: this.state.numToDisplay + Constants.POST_CHUNK_SIZE});
@@ -599,7 +611,7 @@ export default class PostList extends React.Component {
Client.getProfiles();
}.bind(this),
function fail(err) {
- $(this.refs.loadmore.getDOMNode()).text('Load more messages');
+ $(React.findDOMNode(this.refs.loadmore)).text('Load more messages');
AsyncClient.dispatchError(err, 'getPosts');
}.bind(this)
);
@@ -636,11 +648,18 @@ export default class PostList extends React.Component {
if (posts && this.state.isFirstLoadComplete) {
postCtls = this.createPosts(posts, order);
} else {
- postCtls.push(<LoadingScreen position='absolute' />);
+ postCtls.push(
+ <LoadingScreen
+ position='absolute'
+ key='loading'
+ />);
}
return (
- <div ref='postlist' className='post-list-holder-by-time'>
+ <div
+ ref='postlist'
+ className='post-list-holder-by-time'
+ >
<div className='post-list__table'>
<div className='post-list__content'>
{moreMessages}