From: Dessalines Date: Mon, 20 Jan 2020 00:48:34 +0000 (-0500) Subject: Fixing new comments and posts voting issue. Fixes #422 X-Git-Url: http://these/git/%7B%60%24%7BwebArchiveUrl%7D/%22%7B%7D/%24%7B%60data:application/%22https:/hacktivis.me/%7Bthis.state.user.avatar%7D?a=commitdiff_plain;h=f020e89a8c8b5a8dafc41cf40dc9fb6f881778fb;p=lemmy.git Fixing new comments and posts voting issue. Fixes #422 --- diff --git a/ui/src/components/comment-node.tsx b/ui/src/components/comment-node.tsx index 21a82954..e6efcf9f 100644 --- a/ui/src/components/comment-node.tsx +++ b/ui/src/components/comment-node.tsx @@ -91,6 +91,18 @@ export class CommentNode extends Component { this.handleCommentDisLike = this.handleCommentDisLike.bind(this); } + componentDidUpdate(prevProps: CommentNodeProps) { + if ( + prevProps.node.comment.my_vote !== this.props.node.comment.my_vote || + this.state.score !== this.props.node.comment.score + ) { + this.setState({ + my_vote: this.props.node.comment.my_vote, + score: this.props.node.comment.score, + }); + } + } + render() { let node = this.props.node; return ( diff --git a/ui/src/components/community.tsx b/ui/src/components/community.tsx index 03766bdc..873b5a8a 100644 --- a/ui/src/components/community.tsx +++ b/ui/src/components/community.tsx @@ -147,7 +147,7 @@ export class Community extends Component { )} {this.selects()} - {this.state.posts && } + {this.paginator()}
@@ -280,11 +280,6 @@ export class Community extends Component { this.setState(this.state); } else if (op == UserOperation.GetPosts) { let res: GetPostsResponse = msg; - - // This is needed to refresh the view - this.state.posts = undefined; - this.setState(this.state); - this.state.posts = res.posts; this.state.loading = false; this.setState(this.state); diff --git a/ui/src/components/main.tsx b/ui/src/components/main.tsx index 95eeb1df..5fdf23bb 100644 --- a/ui/src/components/main.tsx +++ b/ui/src/components/main.tsx @@ -422,9 +422,7 @@ export class Main extends Component { ) : (
{this.selects()} - {this.state.posts && ( - - )} + {this.paginator()}
)} @@ -598,11 +596,6 @@ export class Main extends Component { this.setState(this.state); } else if (op == UserOperation.GetPosts) { let res: GetPostsResponse = msg; - - // This is needed to refresh the view - this.state.posts = undefined; - this.setState(this.state); - this.state.posts = res.posts; this.state.loading = false; this.setState(this.state); diff --git a/ui/src/components/post-listing.tsx b/ui/src/components/post-listing.tsx index c945806b..0c6d44b4 100644 --- a/ui/src/components/post-listing.tsx +++ b/ui/src/components/post-listing.tsx @@ -84,6 +84,15 @@ export class PostListing extends Component { this.handleEditCancel = this.handleEditCancel.bind(this); } + componentDidUpdate(prevProps: PostListingProps) { + if (prevProps.post.my_vote !== this.props.post.my_vote) { + this.setState({ + my_vote: this.props.post.my_vote, + score: this.props.post.score, + }); + } + } + render() { return (