Have setting to disable notifs for new posts. Fixes #132 (#345)

This commit is contained in:
Dessalines 2021-07-22 16:18:13 -04:00 committed by GitHub
parent e9896eb469
commit 1fd6bbc937
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 52 additions and 9 deletions

View file

@ -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",

View file

@ -490,7 +490,9 @@ export class Community extends Component<any, State> {
} else if (op == UserOperation.CreatePost) {
let data = wsJsonToRes<PostResponse>(msg).data;
this.state.posts.unshift(data.post_view);
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<PostResponse>(msg).data;

View file

@ -849,18 +849,32 @@ export class Home extends Component<any, HomeState> {
.includes(data.post_view.community.id)
) {
this.state.posts.unshift(data.post_view);
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);
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);
if (
UserService.Instance.localUserView?.local_user.show_new_post_notifs
) {
notifyPost(data.post_view, this.context.router);
}
}
this.setState(this.state);
}
} else if (

View file

@ -830,6 +830,26 @@ export class Person extends Component<any, PersonState> {
</label>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input
class="form-check-input"
id="user-show-new-post-notifs"
type="checkbox"
checked={this.state.saveUserSettingsForm.show_new_post_notifs}
onChange={linkEvent(
this,
this.handleUserSettingsShowNewPostNotifs
)}
/>
<label
class="form-check-label"
htmlFor="user-show-new-post-notifs"
>
{i18n.t("show_new_post_notifs")}
</label>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input
@ -1016,6 +1036,11 @@ export class Person extends Component<any, PersonState> {
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 =
@ -1199,6 +1224,8 @@ export class Person extends Component<any, PersonState> {
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 =

View file

@ -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"