about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2024-10-10 11:47:12 -0500
committerGitHub <noreply@github.com>2024-10-10 09:47:12 -0700
commit509e3d9c85d7b5d793049282cd47a9821a3ecc38 (patch)
tree1c3c86c6c240245ed01f60f16d774c90a33360bf /src
parent676e6269e72f5e3ab4f394ca6cc0296945fe5210 (diff)
downloadvoidsky-509e3d9c85d7b5d793049282cd47a9821a3ecc38.tar.zst
Filter out non-configrable mod authorities from report dialog (#5670)
Diffstat (limited to 'src')
-rw-r--r--src/screens/Moderation/index.tsx2
-rw-r--r--src/state/queries/preferences/moderation.ts21
2 files changed, 18 insertions, 5 deletions
diff --git a/src/screens/Moderation/index.tsx b/src/screens/Moderation/index.tsx
index 070b87950..3b997009b 100644
--- a/src/screens/Moderation/index.tsx
+++ b/src/screens/Moderation/index.tsx
@@ -169,7 +169,7 @@ export function ModerationScreenInner({
     isLoading: isLabelersLoading,
     data: labelers,
     error: labelersError,
-  } = useMyLabelersQuery()
+  } = useMyLabelersQuery({includeNonConfigurable: true})
 
   useFocusEffect(
     React.useCallback(() => {
diff --git a/src/state/queries/preferences/moderation.ts b/src/state/queries/preferences/moderation.ts
index 9cd183e8b..6a7d628b5 100644
--- a/src/state/queries/preferences/moderation.ts
+++ b/src/state/queries/preferences/moderation.ts
@@ -1,12 +1,13 @@
 import React from 'react'
 import {
-  DEFAULT_LABEL_SETTINGS,
   BskyAgent,
+  DEFAULT_LABEL_SETTINGS,
   interpretLabelValueDefinitions,
 } from '@atproto/api'
 
-import {usePreferencesQuery} from './index'
+import {isNonConfigurableModerationAuthority} from '#/state/session/additional-moderation-authorities'
 import {useLabelersDetailedInfoQuery} from '../labeler'
+import {usePreferencesQuery} from './index'
 
 /**
  * More strict than our default settings for logged in users.
@@ -16,15 +17,27 @@ export const DEFAULT_LOGGED_OUT_LABEL_PREFERENCES: typeof DEFAULT_LABEL_SETTINGS
     Object.entries(DEFAULT_LABEL_SETTINGS).map(([key, _pref]) => [key, 'hide']),
   )
 
-export function useMyLabelersQuery() {
+export function useMyLabelersQuery({
+  includeNonConfigurable = false,
+}: {
+  includeNonConfigurable?: boolean
+} = {}) {
   const prefs = usePreferencesQuery()
-  const dids = Array.from(
+  let dids = Array.from(
     new Set(
       BskyAgent.appLabelers.concat(
         prefs.data?.moderationPrefs.labelers.map(l => l.did) || [],
       ),
     ),
   )
+
+  /*
+   * By default, remove non-configurable moderation authorities
+   */
+  if (!includeNonConfigurable) {
+    dids = dids.filter(did => !isNonConfigurableModerationAuthority(did))
+  }
+
   const labelers = useLabelersDetailedInfoQuery({dids})
   const isLoading = prefs.isLoading || labelers.isLoading
   const error = prefs.error || labelers.error