Dont suggest users that are muted or blocked (close
#1185) (
#1209)
2 files changed, 28 insertions, 6 deletions
diff --git a/src/state/models/discovery/foafs.ts b/src/state/models/discovery/foafs.ts
index 4bcb2bdd1..580145f65 100644
--- a/src/state/models/discovery/foafs.ts
+++ b/src/state/models/discovery/foafs.ts
@@ -105,11 +105,24 @@ export class FoafsModel {
const profile = profiles.data.profiles[i]
const source = this.sources[i]
if (res.status === 'fulfilled' && profile) {
- // filter out users already followed by the user or that *is* the user
+ // filter out inappropriate suggestions
res.value.data.follows = res.value.data.follows.filter(follow => {
- return (
- follow.did !== this.rootStore.me.did && !follow.viewer?.following
- )
+ const viewer = follow.viewer
+ if (viewer) {
+ if (
+ viewer.following ||
+ viewer.muted ||
+ viewer.mutedByList ||
+ viewer.blockedBy ||
+ viewer.blocking
+ ) {
+ return false
+ }
+ }
+ if (follow.did === this.rootStore.me.did) {
+ return false
+ }
+ return true
})
runInAction(() => {
diff --git a/src/state/models/discovery/suggested-actors.ts b/src/state/models/discovery/suggested-actors.ts
index 533e14eab..0b3d36952 100644
--- a/src/state/models/discovery/suggested-actors.ts
+++ b/src/state/models/discovery/suggested-actors.ts
@@ -85,8 +85,17 @@ export class SuggestedActorsModel {
this.hasMore = !!cursor
this.suggestions = this.suggestions.concat(
actors.filter(actor => {
- if (actor.viewer?.following) {
- return false
+ const viewer = actor.viewer
+ if (viewer) {
+ if (
+ viewer.following ||
+ viewer.muted ||
+ viewer.mutedByList ||
+ viewer.blockedBy ||
+ viewer.blocking
+ ) {
+ return false
+ }
}
if (actor.did === this.rootStore.me.did) {
return false
|