Filter out non-configurable mod authorities

This commit is contained in:
Eric Bailey
2024-09-04 14:59:38 -05:00
parent be1f1e49dd
commit 9ad2d11fa2
3 changed files with 54 additions and 41 deletions
+46 -38
View File
@@ -22,6 +22,7 @@ import {
useProfileUpdateMutation, useProfileUpdateMutation,
} from '#/state/queries/profile' } from '#/state/queries/profile'
import {useSession} from '#/state/session' import {useSession} from '#/state/session'
import {isNonConfigurableModerationAuthority} from '#/state/session/additional-moderation-authorities'
import {useSetMinimalShellMode} from '#/state/shell' import {useSetMinimalShellMode} from '#/state/shell'
import {useAnalytics} from 'lib/analytics/analytics' import {useAnalytics} from 'lib/analytics/analytics'
import {ViewHeader} from '#/view/com/util/ViewHeader' import {ViewHeader} from '#/view/com/util/ViewHeader'
@@ -423,45 +424,52 @@ export function ModerationScreenInner({
</View> </View>
) : ( ) : (
<View style={[a.rounded_sm, t.atoms.bg_contrast_25]}> <View style={[a.rounded_sm, t.atoms.bg_contrast_25]}>
{labelers.map((labeler, i) => { {labelers
return ( .filter(
<React.Fragment key={labeler.creator.did}> labeler =>
{i !== 0 && <Divider />} !isNonConfigurableModerationAuthority(labeler.creator.did),
<LabelingService.Link labeler={labeler}>
{state => (
<LabelingService.Outer
style={[
i === 0 && {
borderTopLeftRadius: a.rounded_sm.borderRadius,
borderTopRightRadius: a.rounded_sm.borderRadius,
},
i === labelers.length - 1 && {
borderBottomLeftRadius: a.rounded_sm.borderRadius,
borderBottomRightRadius: a.rounded_sm.borderRadius,
},
(state.hovered || state.pressed) && [
t.atoms.bg_contrast_50,
],
]}>
<LabelingService.Avatar avatar={labeler.creator.avatar} />
<LabelingService.Content>
<LabelingService.Title
value={getLabelingServiceTitle({
displayName: labeler.creator.displayName,
handle: labeler.creator.handle,
})}
/>
<LabelingService.Description
value={labeler.creator.description}
handle={labeler.creator.handle}
/>
</LabelingService.Content>
</LabelingService.Outer>
)}
</LabelingService.Link>
</React.Fragment>
) )
})} .map((labeler, i) => {
return (
<React.Fragment key={labeler.creator.did}>
{i !== 0 && <Divider />}
<LabelingService.Link labeler={labeler}>
{state => (
<LabelingService.Outer
style={[
i === 0 && {
borderTopLeftRadius: a.rounded_sm.borderRadius,
borderTopRightRadius: a.rounded_sm.borderRadius,
},
i === labelers.length - 1 && {
borderBottomLeftRadius: a.rounded_sm.borderRadius,
borderBottomRightRadius: a.rounded_sm.borderRadius,
},
(state.hovered || state.pressed) && [
t.atoms.bg_contrast_50,
],
]}>
<LabelingService.Avatar
avatar={labeler.creator.avatar}
/>
<LabelingService.Content>
<LabelingService.Title
value={getLabelingServiceTitle({
displayName: labeler.creator.displayName,
handle: labeler.creator.handle,
})}
/>
<LabelingService.Description
value={labeler.creator.description}
handle={labeler.creator.handle}
/>
</LabelingService.Content>
</LabelingService.Outer>
)}
</LabelingService.Link>
</React.Fragment>
)
})}
</View> </View>
)} )}
@@ -1,15 +1,20 @@
import {BskyAgent} from '@atproto/api' import {BskyAgent} from '@atproto/api'
export const ADDITIONAL_LABELER = 'did:plc:oz5zavafp7szpd2yyko57ccz' export const ADDITIONAL_LABELER = 'did:plc:oz5zavafp7szpd2yyko57ccz'
export const ADDITIONAL_LABELERS = { export const ADDITIONAL_LABELERS_MAP = {
category: [ADDITIONAL_LABELER], category: [ADDITIONAL_LABELER],
} }
export const NON_CONFIGURABLE_LABELERS = [ADDITIONAL_LABELER]
export function isNonConfigurableModerationAuthority(did: string) {
return NON_CONFIGURABLE_LABELERS.includes(did)
}
export function configureAdditionalModerationAuthorities() { export function configureAdditionalModerationAuthorities() {
BskyAgent.configure({ BskyAgent.configure({
appLabelers: [ appLabelers: [
...BskyAgent.appLabelers, ...BskyAgent.appLabelers,
...(ADDITIONAL_LABELERS.category ?? []), ...(ADDITIONAL_LABELERS_MAP.category ?? []),
], ],
}) })
} }
+1 -1
View File
@@ -1,7 +1,7 @@
import {BSKY_LABELER_DID, BskyAgent} from '@atproto/api' import {BSKY_LABELER_DID, BskyAgent} from '@atproto/api'
import {IS_TEST_USER} from '#/lib/constants' import {IS_TEST_USER} from '#/lib/constants'
import {configureAdditionalModerationAuthorities} from './additional-authorities' import {configureAdditionalModerationAuthorities} from './additional-moderation-authorities'
import {readLabelers} from './agent-config' import {readLabelers} from './agent-config'
import {SessionAccount} from './types' import {SessionAccount} from './types'