X-Git-Url: http://these/git/?a=blobdiff_plain;f=src%2Fshared%2Fcomponents%2Fcommunity%2Fcommunity.tsx;h=b0787ecd9aa40278ba695a0b9c1ba12a129a5fd7;hb=afafb777b4be09d70cd8f56f8d236d98ac63ba6e;hp=c00380ab2db9ff1b1258cadde8bd0f25a6d2efb8;hpb=a48c20a772c40e519f64863e3d7edb2985f2a31c;p=lemmy-ui.git
diff --git a/src/shared/components/community/community.tsx b/src/shared/components/community/community.tsx
index c00380a..b0787ec 100644
--- a/src/shared/components/community/community.tsx
+++ b/src/shared/components/community/community.tsx
@@ -62,6 +62,7 @@ import {
LockPost,
MarkCommentReplyAsRead,
MarkPersonMentionAsRead,
+ MarkPostAsRead,
PostResponse,
PurgeComment,
PurgeCommunity,
@@ -195,6 +196,7 @@ export class Community extends Component<
this.handleSavePost = this.handleSavePost.bind(this);
this.handlePurgePost = this.handlePurgePost.bind(this);
this.handleFeaturePost = this.handleFeaturePost.bind(this);
+ this.handleMarkPostAsRead = this.handleMarkPostAsRead.bind(this);
this.mainContentRef = createRef();
// Only fetch the data if coming from another route
if (FirstLoadService.isFirstLoad) {
@@ -290,7 +292,7 @@ export class Community extends Component<
get documentTitle(): string {
const cRes = this.state.communityRes;
- return cRes.state == "success"
+ return cRes.state === "success"
? `${cRes.data.community_view.community.title} - ${this.isoData.site_res.site_view.site.name}`
: "";
}
@@ -312,6 +314,7 @@ export class Community extends Component<
@@ -430,6 +433,7 @@ export class Community extends Component<
onAddAdmin={this.handleAddAdmin}
onTransferCommunity={this.handleTransferCommunity}
onFeaturePost={this.handleFeaturePost}
+ onMarkPostAsRead={this.handleMarkPostAsRead}
/>
);
}
@@ -447,7 +451,7 @@ export class Community extends Component<
nodes={commentsToFlatNodes(this.state.commentsRes.data.comments)}
viewType={CommentViewType.Flat}
finished={this.state.finished}
- noIndent
+ isTopLevel
showContext
enableDownvotes={enableDownvotes(site_res)}
moderators={communityRes.moderators}
@@ -569,7 +573,7 @@ export class Community extends Component<
};
this.props.history.push(
- `/c/${this.props.match.params.name}${getQueryString(queryParams)}`
+ `/c/${this.props.match.params.name}${getQueryString(queryParams)}`,
);
await this.fetchData();
@@ -625,11 +629,11 @@ export class Community extends Component<
this.updateCommunity(followCommunityRes);
// Update myUserInfo
- if (followCommunityRes.state == "success") {
+ if (followCommunityRes.state === "success") {
const communityId = followCommunityRes.data.community_view.community.id;
const mui = UserService.Instance.myUserInfo;
if (mui) {
- mui.follows = mui.follows.filter(i => i.community.id != communityId);
+ mui.follows = mui.follows.filter(i => i.community.id !== communityId);
}
}
}
@@ -656,10 +660,10 @@ export class Community extends Component<
async handleBlockCommunity(form: BlockCommunity) {
const blockCommunityRes = await HttpService.client.blockCommunity(form);
- if (blockCommunityRes.state == "success") {
+ if (blockCommunityRes.state === "success") {
updateCommunityBlock(blockCommunityRes.data);
this.setState(s => {
- if (s.communityRes.state == "success") {
+ if (s.communityRes.state === "success") {
s.communityRes.data.community_view.blocked =
blockCommunityRes.data.blocked;
}
@@ -669,7 +673,7 @@ export class Community extends Component<
async handleBlockPerson(form: BlockPerson) {
const blockPersonRes = await HttpService.client.blockPerson(form);
- if (blockPersonRes.state == "success") {
+ if (blockPersonRes.state === "success") {
updatePersonBlock(blockPersonRes.data);
}
}
@@ -752,14 +756,14 @@ export class Community extends Component<
async handleCommentReport(form: CreateCommentReport) {
const reportRes = await HttpService.client.createCommentReport(form);
- if (reportRes.state == "success") {
+ if (reportRes.state === "success") {
toast(I18NextService.i18n.t("report_created"));
}
}
async handlePostReport(form: CreatePostReport) {
const reportRes = await HttpService.client.createPostReport(form);
- if (reportRes.state == "success") {
+ if (reportRes.state === "success") {
toast(I18NextService.i18n.t("report_created"));
}
}
@@ -777,14 +781,14 @@ export class Community extends Component<
async handleAddAdmin(form: AddAdmin) {
const addAdminRes = await HttpService.client.addAdmin(form);
- if (addAdminRes.state == "success") {
+ if (addAdminRes.state === "success") {
this.setState(s => ((s.siteRes.admins = addAdminRes.data.admins), s));
}
}
async handleTransferCommunity(form: TransferCommunity) {
const transferCommunityRes = await HttpService.client.transferCommunity(
- form
+ form,
);
toast(I18NextService.i18n.t("transfer_community"));
this.updateCommunityFull(transferCommunityRes);
@@ -800,6 +804,11 @@ export class Community extends Component<
await HttpService.client.markPersonMentionAsRead(form);
}
+ async handleMarkPostAsRead(form: MarkPostAsRead) {
+ const res = await HttpService.client.markPostAsRead(form);
+ this.findAndUpdatePost(res);
+ }
+
async handleBanFromCommunity(form: BanFromCommunity) {
const banRes = await HttpService.client.banFromCommunity(form);
this.updateBanFromCommunity(banRes);
@@ -812,20 +821,20 @@ export class Community extends Component<
updateBanFromCommunity(banRes: RequestState) {
// Maybe not necessary
- if (banRes.state == "success") {
+ if (banRes.state === "success") {
this.setState(s => {
- if (s.postsRes.state == "success") {
+ if (s.postsRes.state === "success") {
s.postsRes.data.posts
- .filter(c => c.creator.id == banRes.data.person_view.person.id)
+ .filter(c => c.creator.id === banRes.data.person_view.person.id)
.forEach(
- c => (c.creator_banned_from_community = banRes.data.banned)
+ c => (c.creator_banned_from_community = banRes.data.banned),
);
}
- if (s.commentsRes.state == "success") {
+ if (s.commentsRes.state === "success") {
s.commentsRes.data.comments
- .filter(c => c.creator.id == banRes.data.person_view.person.id)
+ .filter(c => c.creator.id === banRes.data.person_view.person.id)
.forEach(
- c => (c.creator_banned_from_community = banRes.data.banned)
+ c => (c.creator_banned_from_community = banRes.data.banned),
);
}
return s;
@@ -835,16 +844,16 @@ export class Community extends Component<
updateBan(banRes: RequestState) {
// Maybe not necessary
- if (banRes.state == "success") {
+ if (banRes.state === "success") {
this.setState(s => {
- if (s.postsRes.state == "success") {
+ if (s.postsRes.state === "success") {
s.postsRes.data.posts
- .filter(c => c.creator.id == banRes.data.person_view.person.id)
+ .filter(c => c.creator.id === banRes.data.person_view.person.id)
.forEach(c => (c.creator.banned = banRes.data.banned));
}
- if (s.commentsRes.state == "success") {
+ if (s.commentsRes.state === "success") {
s.commentsRes.data.comments
- .filter(c => c.creator.id == banRes.data.person_view.person.id)
+ .filter(c => c.creator.id === banRes.data.person_view.person.id)
.forEach(c => (c.creator.banned = banRes.data.banned));
}
return s;
@@ -854,7 +863,7 @@ export class Community extends Component<
updateCommunity(res: RequestState) {
this.setState(s => {
- if (s.communityRes.state == "success" && res.state == "success") {
+ if (s.communityRes.state === "success" && res.state === "success") {
s.communityRes.data.community_view = res.data.community_view;
s.communityRes.data.discussion_languages =
res.data.discussion_languages;
@@ -865,7 +874,7 @@ export class Community extends Component<
updateCommunityFull(res: RequestState) {
this.setState(s => {
- if (s.communityRes.state == "success" && res.state == "success") {
+ if (s.communityRes.state === "success" && res.state === "success") {
s.communityRes.data.community_view = res.data.community_view;
s.communityRes.data.moderators = res.data.moderators;
}
@@ -874,7 +883,7 @@ export class Community extends Component<
}
purgeItem(purgeRes: RequestState) {
- if (purgeRes.state == "success") {
+ if (purgeRes.state === "success") {
toast(I18NextService.i18n.t("purge_success"));
this.context.router.history.push(`/`);
}
@@ -882,10 +891,10 @@ export class Community extends Component<
findAndUpdateComment(res: RequestState) {
this.setState(s => {
- if (s.commentsRes.state == "success" && res.state == "success") {
+ if (s.commentsRes.state === "success" && res.state === "success") {
s.commentsRes.data.comments = editComment(
res.data.comment_view,
- s.commentsRes.data.comments
+ s.commentsRes.data.comments,
);
s.finished.set(res.data.comment_view.comment.id, true);
}
@@ -895,13 +904,13 @@ export class Community extends Component<
createAndUpdateComments(res: RequestState) {
this.setState(s => {
- if (s.commentsRes.state == "success" && res.state == "success") {
+ if (s.commentsRes.state === "success" && res.state === "success") {
s.commentsRes.data.comments.unshift(res.data.comment_view);
// Set finished for the parent
s.finished.set(
getCommentParentId(res.data.comment_view.comment) ?? 0,
- true
+ true,
);
}
return s;
@@ -910,10 +919,10 @@ export class Community extends Component<
findAndUpdateCommentReply(res: RequestState) {
this.setState(s => {
- if (s.commentsRes.state == "success" && res.state == "success") {
+ if (s.commentsRes.state === "success" && res.state === "success") {
s.commentsRes.data.comments = editWith(
res.data.comment_reply_view,
- s.commentsRes.data.comments
+ s.commentsRes.data.comments,
);
}
return s;
@@ -922,10 +931,10 @@ export class Community extends Component<
findAndUpdatePost(res: RequestState) {
this.setState(s => {
- if (s.postsRes.state == "success" && res.state == "success") {
+ if (s.postsRes.state === "success" && res.state === "success") {
s.postsRes.data.posts = editPost(
res.data.post_view,
- s.postsRes.data.posts
+ s.postsRes.data.posts,
);
}
return s;
@@ -935,7 +944,7 @@ export class Community extends Component<
updateModerators(res: RequestState) {
// Update the moderators
this.setState(s => {
- if (s.communityRes.state == "success" && res.state == "success") {
+ if (s.communityRes.state === "success" && res.state === "success") {
s.communityRes.data.moderators = res.data.moderators;
}
return s;