ui changes for marking comment as read on reply (#454)

* ui changes for marking comment as read on reply

* refactor
This commit is contained in:
Luna 2021-10-12 22:31:49 +05:30 committed by GitHub
parent bcd6d3a078
commit 73af3fd9ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -736,6 +736,37 @@ export class Inbox extends Component<any, InboxState> {
data.comment_view.creator.id ==
UserService.Instance.myUserInfo.local_user_view.person.id
) {
// If youre in the unread view, just remove it from the list
if (this.state.unreadOrAll == UnreadOrAll.Unread) {
this.state.replies = this.state.replies.filter(
r => r.comment.id !== data.comment_view.comment.parent_id
);
this.state.mentions = this.state.mentions.filter(
m => m.comment.id !== data.comment_view.comment.parent_id
);
this.state.combined = this.state.combined.filter(r => {
if (this.isMention(r.view))
return r.view.comment.id !== data.comment_view.comment.parent_id;
else return r.id !== data.comment_view.comment.parent_id;
});
} else {
let mention_found = this.state.mentions.find(
i => i.comment.id == data.comment_view.comment.parent_id
);
if (mention_found) {
mention_found.person_mention.read = true;
}
let reply_found = this.state.replies.find(
i => i.comment.id == data.comment_view.comment.parent_id
);
if (reply_found) {
reply_found.comment.read = true;
}
this.state.combined = this.buildCombined();
}
this.sendUnreadCount();
this.setState(this.state);
setupTippy();
// TODO this seems wrong, you should be using form_id
toast(i18n.t("reply_sent"));
}
@ -794,4 +825,8 @@ export class Inbox extends Component<any, InboxState> {
).length
);
}
isMention(view: any): view is PersonMentionView {
return (view as PersonMentionView).person_mention !== undefined;
}
}