diff options
Diffstat (limited to 'web/react/components/post_list.jsx')
-rw-r--r-- | web/react/components/post_list.jsx | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/web/react/components/post_list.jsx b/web/react/components/post_list.jsx index c1e6e490d..c5db3956d 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); @@ -514,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} @@ -575,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}); @@ -607,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) ); @@ -644,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} |