diff options
author | Dessalines <tyhou13@gmx.com> | 2020-02-08 23:20:11 -0500 |
---|---|---|
committer | Dessalines <tyhou13@gmx.com> | 2020-02-08 23:20:11 -0500 |
commit | 56cd103209605471b27aa5a854cc3b051f2a65f5 (patch) | |
tree | 704e96abe61a6481fe9243b4b4d33271f785e960 /ui/src/components/community.tsx | |
parent | 8baa483c8907945921d962be9b34cad824c2e294 (diff) |
Fixing some technical debt. Fixes #524
Diffstat (limited to 'ui/src/components/community.tsx')
-rw-r--r-- | ui/src/components/community.tsx | 60 |
1 files changed, 14 insertions, 46 deletions
diff --git a/ui/src/components/community.tsx b/ui/src/components/community.tsx index 3e04a8bf..32392ca1 100644 --- a/ui/src/components/community.tsx +++ b/ui/src/components/community.tsx @@ -37,6 +37,12 @@ import { getPageFromProps, getSortTypeFromProps, getDataTypeFromProps, + editCommentRes, + saveCommentRes, + createCommentLikeRes, + createPostLikeFindRes, + editPostFindRes, + commentsToFlatNodes, } from '../utils'; import { i18n } from '../i18next'; @@ -174,13 +180,7 @@ export class Community extends Component<any, State> { return this.state.dataType == DataType.Post ? ( <PostListings posts={this.state.posts} removeDuplicates /> ) : ( - this.state.comments.map(comment => ( - <div class="row"> - <div class="col-12"> - <CommentNodes nodes={[{ comment: comment }]} noIndent /> - </div> - </div> - )) + <CommentNodes nodes={commentsToFlatNodes(this.state.comments)} noIndent /> ); } @@ -333,30 +333,15 @@ export class Community extends Component<any, State> { this.setState(this.state); } else if (res.op == UserOperation.EditPost) { let data = res.data as PostResponse; - let found = this.state.posts.find(c => c.id == data.post.id); - if (found) { - found.url = data.post.url; - found.name = data.post.name; - found.nsfw = data.post.nsfw; - this.setState(this.state); - } + editPostFindRes(data, this.state.posts); + this.setState(this.state); } else if (res.op == UserOperation.CreatePost) { let data = res.data as PostResponse; this.state.posts.unshift(data.post); this.setState(this.state); } else if (res.op == UserOperation.CreatePostLike) { let data = res.data as PostResponse; - let found = this.state.posts.find(c => c.id == data.post.id); - if (found) { - found.score = data.post.score; - found.upvotes = data.post.upvotes; - found.downvotes = data.post.downvotes; - if (data.post.my_vote !== null) { - found.my_vote = data.post.my_vote; - found.upvoteLoading = false; - found.downvoteLoading = false; - } - } + createPostLikeFindRes(data, this.state.posts); this.setState(this.state); } else if (res.op == UserOperation.AddModToCommunity) { let data = res.data as AddModToCommunityResponse; @@ -377,18 +362,8 @@ export class Community extends Component<any, State> { this.setState(this.state); } else if (res.op == UserOperation.EditComment) { let data = res.data as CommentResponse; - - let found = this.state.comments.find(c => c.id == data.comment.id); - if (found) { - found.content = data.comment.content; - found.updated = data.comment.updated; - found.removed = data.comment.removed; - found.deleted = data.comment.deleted; - found.upvotes = data.comment.upvotes; - found.downvotes = data.comment.downvotes; - found.score = data.comment.score; - this.setState(this.state); - } + editCommentRes(data, this.state.comments); + this.setState(this.state); } else if (res.op == UserOperation.CreateComment) { let data = res.data as CommentResponse; @@ -399,18 +374,11 @@ export class Community extends Component<any, State> { } } else if (res.op == UserOperation.SaveComment) { let data = res.data as CommentResponse; - let found = this.state.comments.find(c => c.id == data.comment.id); - found.saved = data.comment.saved; + saveCommentRes(data, this.state.comments); this.setState(this.state); } else if (res.op == UserOperation.CreateCommentLike) { let data = res.data as CommentResponse; - let found: Comment = this.state.comments.find( - c => c.id === data.comment.id - ); - found.score = data.comment.score; - found.upvotes = data.comment.upvotes; - found.downvotes = data.comment.downvotes; - if (data.comment.my_vote !== null) found.my_vote = data.comment.my_vote; + createCommentLikeRes(data, this.state.comments); this.setState(this.state); } } |