summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/src/components/comment-node.tsx12
-rw-r--r--ui/src/components/community.tsx7
-rw-r--r--ui/src/components/main.tsx9
-rw-r--r--ui/src/components/post-listing.tsx9
4 files changed, 23 insertions, 14 deletions
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<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 (
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<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);
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<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);
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<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">