Bluesky app fork with some witchin' additions 馃挮
at linkat-integration 66 lines 2.3 kB view raw
1import {View} from 'react-native' 2import {Trans} from '@lingui/macro' 3 4import { 5 type AllNavigatorParams, 6 type NativeStackScreenProps, 7} from '#/lib/routes/types' 8import {useNotificationSettingsQuery} from '#/state/queries/notifications/settings' 9import {atoms as a} from '#/alf' 10import {Admonition} from '#/components/Admonition' 11import {RepostRepost_Stroke2_Corner2_Rounded as RepostRepostIcon} from '#/components/icons/Repost' 12import * as Layout from '#/components/Layout' 13import * as SettingsList from '../components/SettingsList' 14import {ItemTextWithSubtitle} from './components/ItemTextWithSubtitle' 15import {PreferenceControls} from './components/PreferenceControls' 16 17type Props = NativeStackScreenProps< 18 AllNavigatorParams, 19 'RepostsOnRepostsNotificationSettings' 20> 21export function RepostsOnRepostsNotificationSettingsScreen({}: Props) { 22 const {data: preferences, isError} = useNotificationSettingsQuery() 23 24 return ( 25 <Layout.Screen> 26 <Layout.Header.Outer> 27 <Layout.Header.BackButton /> 28 <Layout.Header.Content> 29 <Layout.Header.TitleText> 30 <Trans>Notifications</Trans> 31 </Layout.Header.TitleText> 32 </Layout.Header.Content> 33 <Layout.Header.Slot /> 34 </Layout.Header.Outer> 35 <Layout.Content> 36 <SettingsList.Container> 37 <SettingsList.Item style={[a.align_start]}> 38 <SettingsList.ItemIcon icon={RepostRepostIcon} /> 39 <ItemTextWithSubtitle 40 bold 41 titleText={<Trans>Reskeets of your reskeets</Trans>} 42 subtitleText={ 43 <Trans> 44 Get notifications when people reskeet skeets that you've 45 reskeeted. 46 </Trans> 47 } 48 /> 49 </SettingsList.Item> 50 {isError ? ( 51 <View style={[a.px_lg, a.pt_md]}> 52 <Admonition type="error"> 53 <Trans>Failed to load notification settings.</Trans> 54 </Admonition> 55 </View> 56 ) : ( 57 <PreferenceControls 58 name="repostViaRepost" 59 preference={preferences?.repostViaRepost} 60 /> 61 )} 62 </SettingsList.Container> 63 </Layout.Content> 64 </Layout.Screen> 65 ) 66}