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 {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}