Bluesky app fork with some witchin' additions 馃挮
1
fork

Configure Feed

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

at main 60 lines 2.0 kB view raw
1import {View} from 'react-native' 2import {msg} from '@lingui/macro' 3import {useLingui} from '@lingui/react' 4 5import {useEnableSquareButtons} from '#/state/preferences/enable-square-buttons' 6import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs' 7import {atoms as a, type ViewStyleProp} from '#/alf' 8import {AgeAssuranceAdmonition} from '#/components/ageAssurance/AgeAssuranceAdmonition' 9import {useAgeAssuranceCopy} from '#/components/ageAssurance/useAgeAssuranceCopy' 10import {Button, ButtonIcon} from '#/components/Button' 11import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' 12import {useAgeAssurance} from '#/ageAssurance' 13import {logger} from '#/ageAssurance' 14 15export function AgeAssuranceDismissibleNotice({style}: ViewStyleProp & {}) { 16 const {_} = useLingui() 17 const aa = useAgeAssurance() 18 const {nux} = useNux(Nux.AgeAssuranceDismissibleNotice) 19 const copy = useAgeAssuranceCopy() 20 const {mutate: save, variables} = useSaveNux() 21 const enableSquareButtons = useEnableSquareButtons() 22 const hidden = !!variables 23 24 if (aa.state.access === aa.Access.Full) return null 25 if (aa.state.lastInitiatedAt) return null 26 if (hidden) return null 27 if (nux && nux.completed) return null 28 29 return ( 30 <View style={style}> 31 <View> 32 <AgeAssuranceAdmonition>{copy.notice}</AgeAssuranceAdmonition> 33 34 <Button 35 label={_(msg`Don't show again`)} 36 size="tiny" 37 variant="solid" 38 color="secondary_inverted" 39 shape={enableSquareButtons ? 'square' : 'round'} 40 onPress={() => { 41 save({ 42 id: Nux.AgeAssuranceDismissibleNotice, 43 completed: true, 44 data: undefined, 45 }) 46 logger.metric('ageAssurance:dismissSettingsNotice', {}) 47 }} 48 style={[ 49 a.absolute, 50 { 51 top: 12, 52 right: 12, 53 }, 54 ]}> 55 <ButtonIcon icon={X} /> 56 </Button> 57 </View> 58 </View> 59 ) 60}