Fixing new comments and posts voting issue. Fixes #422

This commit is contained in:
Dessalines 2020-01-19 19:48:34 -05:00
parent 66adf67661
commit 2394993dd4
4 changed files with 23 additions and 14 deletions

View file

@ -91,6 +91,18 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> {
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 (

View file

@ -147,7 +147,7 @@ export class Community extends Component<any, State> {
)}
</h5>
{this.selects()}
{this.state.posts && <PostListings posts={this.state.posts} />}
<PostListings posts={this.state.posts} />
{this.paginator()}
</div>
<div class="col-12 col-md-4">
@ -280,11 +280,6 @@ export class Community extends Component<any, State> {
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);

View file

@ -422,9 +422,7 @@ export class Main extends Component<any, MainState> {
) : (
<div>
{this.selects()}
{this.state.posts && (
<PostListings posts={this.state.posts} showCommunity />
)}
<PostListings posts={this.state.posts} showCommunity />
{this.paginator()}
</div>
)}
@ -598,11 +596,6 @@ export class Main extends Component<any, MainState> {
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);

View file

@ -84,6 +84,15 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
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 (
<div class="row">