Fixing new comments and posts voting issue. Fixes #422
This commit is contained in:
parent
66adf67661
commit
2394993dd4
4 changed files with 23 additions and 14 deletions
12
ui/src/components/comment-node.tsx
vendored
12
ui/src/components/comment-node.tsx
vendored
|
@ -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 (
|
||||
|
|
7
ui/src/components/community.tsx
vendored
7
ui/src/components/community.tsx
vendored
|
@ -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);
|
||||
|
|
9
ui/src/components/main.tsx
vendored
9
ui/src/components/main.tsx
vendored
|
@ -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);
|
||||
|
|
9
ui/src/components/post-listing.tsx
vendored
9
ui/src/components/post-listing.tsx
vendored
|
@ -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">
|
||||
|
|
Reference in a new issue