forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
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}