Bluesky app fork with some witchin' additions 馃挮
at linkat-integration 62 lines 2.1 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 {Bubble_Stroke2_Corner2_Rounded as BubbleIcon} from '#/components/icons/Bubble' 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 'ReplyNotificationSettings' 20> 21export function ReplyNotificationSettingsScreen({}: 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={BubbleIcon} /> 39 <ItemTextWithSubtitle 40 bold 41 titleText={<Trans>Replies</Trans>} 42 subtitleText={ 43 <Trans> 44 Get notifications when people reply to your skeets. 45 </Trans> 46 } 47 /> 48 </SettingsList.Item> 49 {isError ? ( 50 <View style={[a.px_lg, a.pt_md]}> 51 <Admonition type="error"> 52 <Trans>Failed to load notification settings.</Trans> 53 </Admonition> 54 </View> 55 ) : ( 56 <PreferenceControls name="reply" preference={preferences?.reply} /> 57 )} 58 </SettingsList.Container> 59 </Layout.Content> 60 </Layout.Screen> 61 ) 62}