From d61efa1f2f7746fcf2b9d06977ba552639fad669 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Mon, 19 Jul 2021 10:06:22 -0400 Subject: [PATCH] Have setting to disable notifs for new posts. Fixes #132 --- package.json | 2 +- src/shared/components/community/community.tsx | 4 ++- src/shared/components/home/home.tsx | 20 +++++++++++--- src/shared/components/person/person.tsx | 27 +++++++++++++++++++ yarn.lock | 8 +++--- 5 files changed, 52 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 270dad97..3b03e3c9 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "husky": "^7.0.1", "import-sort-style-module": "^6.0.0", "iso-639-1": "^2.1.9", - "lemmy-js-client": "0.11.0", + "lemmy-js-client": "0.11.3-rc.2", "lint-staged": "^11.0.1", "mini-css-extract-plugin": "^2.1.0", "node-fetch": "^2.6.1", diff --git a/src/shared/components/community/community.tsx b/src/shared/components/community/community.tsx index 247391d6..18bd4af1 100644 --- a/src/shared/components/community/community.tsx +++ b/src/shared/components/community/community.tsx @@ -502,7 +502,9 @@ export class Community extends Component { } else if (op == UserOperation.CreatePost) { let data = wsJsonToRes(msg).data; this.state.posts.unshift(data.post_view); - notifyPost(data.post_view, this.context.router); + if (UserService.Instance.localUserView?.local_user.show_new_post_notifs) { + notifyPost(data.post_view, this.context.router); + } this.setState(this.state); } else if (op == UserOperation.CreatePostLike) { let data = wsJsonToRes(msg).data; diff --git a/src/shared/components/home/home.tsx b/src/shared/components/home/home.tsx index a351484b..cfa1f228 100644 --- a/src/shared/components/home/home.tsx +++ b/src/shared/components/home/home.tsx @@ -840,17 +840,31 @@ export class Home extends Component { .includes(data.post_view.community.id) ) { this.state.posts.unshift(data.post_view); - notifyPost(data.post_view, this.context.router); + if ( + UserService.Instance.localUserView?.local_user + .show_new_post_notifs + ) { + notifyPost(data.post_view, this.context.router); + } } } else if (this.state.listingType == ListingType.Local) { // If you're on the local view, only push it if its local if (data.post_view.post.local) { this.state.posts.unshift(data.post_view); - notifyPost(data.post_view, this.context.router); + if ( + UserService.Instance.localUserView?.local_user + .show_new_post_notifs + ) { + notifyPost(data.post_view, this.context.router); + } } } else { this.state.posts.unshift(data.post_view); - notifyPost(data.post_view, this.context.router); + if ( + UserService.Instance.localUserView?.local_user.show_new_post_notifs + ) { + notifyPost(data.post_view, this.context.router); + } } this.setState(this.state); } diff --git a/src/shared/components/person/person.tsx b/src/shared/components/person/person.tsx index a314a307..79be7139 100644 --- a/src/shared/components/person/person.tsx +++ b/src/shared/components/person/person.tsx @@ -835,6 +835,26 @@ export class Person extends Component { +
+
+ + +
+
{ i.setState(i.state); } + handleUserSettingsShowNewPostNotifs(i: Person, event: any) { + i.state.saveUserSettingsForm.show_new_post_notifs = event.target.checked; + i.setState(i.state); + } + handleUserSettingsShowScoresChange(i: Person, event: any) { i.state.saveUserSettingsForm.show_scores = event.target.checked; UserService.Instance.localUserView.local_user.show_scores = @@ -1206,6 +1231,8 @@ export class Person extends Component { UserService.Instance.localUserView.local_user.show_scores; this.state.saveUserSettingsForm.show_read_posts = UserService.Instance.localUserView.local_user.show_read_posts; + this.state.saveUserSettingsForm.show_new_post_notifs = + UserService.Instance.localUserView.local_user.show_new_post_notifs; this.state.saveUserSettingsForm.email = UserService.Instance.localUserView.local_user.email; this.state.saveUserSettingsForm.bio = diff --git a/yarn.lock b/yarn.lock index 9ed1bffa..8e30236f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5342,10 +5342,10 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -lemmy-js-client@0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.11.0.tgz#aab1d445c55ca486eac3e396818371b9adfdf564" - integrity sha512-maLAwvLXbq8ncFY1Bg3MkQ4b2yeDATPUKRldFqlLt7fvDF9Mkfa3udFrroLEyNep2t3vROAtwA1gjf+Fqop0+w== +lemmy-js-client@0.11.3-rc.2: + version "0.11.3-rc.2" + resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.11.3-rc.2.tgz#2debf0e524dbdade7056900ea1f202be8bde1e1c" + integrity sha512-4dMjUxUdEGS9SlxDJDDAwR5CxSEeHWR8tbHAel1tCVPdxJmFWqOlbucjWDGNyAQIUOEC8hhNdtf3dlIftEF2Rw== levn@^0.4.1: version "0.4.1"