mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at session-2.1 66 lines 1.8 kB view raw
1import React from 'react' 2import {StyleProp, View, ViewStyle} from 'react-native' 3import {ModerationUI, ModerationCause} from '@atproto/api' 4 5import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' 6import {getModerationCauseKey} from '#/lib/moderation' 7 8import {atoms as a} from '#/alf' 9import {Button, ButtonText, ButtonIcon} from '#/components/Button' 10import { 11 ModerationDetailsDialog, 12 useModerationDetailsDialogControl, 13} from '#/components/moderation/ModerationDetailsDialog' 14 15export function PostAlerts({ 16 modui, 17 style, 18}: { 19 modui: ModerationUI 20 includeMute?: boolean 21 style?: StyleProp<ViewStyle> 22}) { 23 if (!modui.alert && !modui.inform) { 24 return null 25 } 26 27 return ( 28 <View style={[a.flex_col, a.gap_xs, style]}> 29 <View style={[a.flex_row, a.flex_wrap, a.gap_xs]}> 30 {modui.alerts.map(cause => ( 31 <PostLabel key={getModerationCauseKey(cause)} cause={cause} /> 32 ))} 33 {modui.informs.map(cause => ( 34 <PostLabel key={getModerationCauseKey(cause)} cause={cause} /> 35 ))} 36 </View> 37 </View> 38 ) 39} 40 41function PostLabel({cause}: {cause: ModerationCause}) { 42 const control = useModerationDetailsDialogControl() 43 const desc = useModerationCauseDescription(cause) 44 45 return ( 46 <> 47 <Button 48 label={desc.name} 49 variant="solid" 50 color="secondary" 51 size="small" 52 shape="default" 53 onPress={() => { 54 control.open() 55 }} 56 style={[a.px_sm, a.py_xs, a.gap_xs]}> 57 <ButtonIcon icon={desc.icon} position="left" /> 58 <ButtonText style={[a.text_left, a.leading_snug]}> 59 {desc.name} 60 </ButtonText> 61 </Button> 62 63 <ModerationDetailsDialog control={control} modcause={cause} /> 64 </> 65 ) 66}