Use admonitions in settings screens (#5741)

This commit is contained in:
Samuel Newman
2024-10-14 21:45:47 +03:00
committed by GitHub
parent 240535fd8b
commit ef5bc5243e
3 changed files with 24 additions and 38 deletions
+8 -5
View File
@@ -1,5 +1,5 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {StyleProp, View, ViewStyle} from 'react-native'
import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {atoms as a, useBreakpoints, useTheme} from '#/alf'
import {CircleInfo_Stroke2_Corner0_Rounded as ErrorIcon} from '#/components/icons/CircleInfo' import {CircleInfo_Stroke2_Corner0_Rounded as ErrorIcon} from '#/components/icons/CircleInfo'
@@ -70,9 +70,11 @@ export function Row({children}: {children: React.ReactNode}) {
export function Outer({ export function Outer({
children, children,
type = 'info', type = 'info',
style,
}: { }: {
children: React.ReactNode children: React.ReactNode
type?: Context['type'] type?: Context['type']
style?: StyleProp<ViewStyle>
}) { }) {
const t = useTheme() const t = useTheme()
const {gtMobile} = useBreakpoints() const {gtMobile} = useBreakpoints()
@@ -90,9 +92,8 @@ export function Outer({
a.rounded_sm, a.rounded_sm,
a.border, a.border,
t.atoms.bg_contrast_25, t.atoms.bg_contrast_25,
{ {borderColor},
borderColor, style,
},
]}> ]}>
{children} {children}
</View> </View>
@@ -103,12 +104,14 @@ export function Outer({
export function Admonition({ export function Admonition({
children, children,
type, type,
style,
}: { }: {
children: TextProps['children'] children: TextProps['children']
type?: Context['type'] type?: Context['type']
style?: StyleProp<ViewStyle>
}) { }) {
return ( return (
<Outer type={type}> <Outer type={type} style={style}>
<Row> <Row>
<Icon /> <Icon />
<Text>{children}</Text> <Text>{children}</Text>
+4 -13
View File
@@ -12,7 +12,8 @@ import {useSession} from '#/state/session'
import * as Toast from '#/view/com/util/Toast' import * as Toast from '#/view/com/util/Toast'
import {ViewHeader} from '#/view/com/util/ViewHeader' import {ViewHeader} from '#/view/com/util/ViewHeader'
import {ScrollView} from '#/view/com/util/Views' import {ScrollView} from '#/view/com/util/Views'
import {atoms as a, useTheme} from '#/alf' import {atoms as a} from '#/alf'
import {Admonition} from '#/components/Admonition'
import {Divider} from '#/components/Divider' import {Divider} from '#/components/Divider'
import * as Toggle from '#/components/forms/Toggle' import * as Toggle from '#/components/forms/Toggle'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
@@ -23,7 +24,6 @@ type AllowIncoming = 'all' | 'none' | 'following'
type Props = NativeStackScreenProps<CommonNavigatorParams, 'MessagesSettings'> type Props = NativeStackScreenProps<CommonNavigatorParams, 'MessagesSettings'>
export function MessagesSettingsScreen({}: Props) { export function MessagesSettingsScreen({}: Props) {
const {_} = useLingui() const {_} = useLingui()
const t = useTheme()
const {currentAccount} = useSession() const {currentAccount} = useSession()
const {data: profile} = useProfileQuery({ const {data: profile} = useProfileQuery({
did: currentAccount!.did, did: currentAccount!.did,
@@ -99,21 +99,12 @@ export function MessagesSettingsScreen({}: Props) {
</Toggle.Item> </Toggle.Item>
</View> </View>
</Toggle.Group> </Toggle.Group>
<View <Admonition type="tip">
style={[
a.mt_sm,
a.px_xl,
a.py_lg,
a.rounded_md,
t.atoms.bg_contrast_25,
]}>
<Text style={[t.atoms.text_contrast_high, a.leading_snug]}>
<Trans> <Trans>
You can continue ongoing conversations regardless of which setting You can continue ongoing conversations regardless of which setting
you choose. you choose.
</Trans> </Trans>
</Text> </Admonition>
</View>
{isNative && ( {isNative && (
<> <>
<Divider style={a.my_md} /> <Divider style={a.my_md} />
+6 -14
View File
@@ -10,6 +10,7 @@ import {useNotificationsSettingsMutation} from '#/state/queries/notifications/se
import {ViewHeader} from '#/view/com/util/ViewHeader' import {ViewHeader} from '#/view/com/util/ViewHeader'
import {ScrollView} from '#/view/com/util/Views' import {ScrollView} from '#/view/com/util/Views'
import {atoms as a, useTheme} from '#/alf' import {atoms as a, useTheme} from '#/alf'
import {Admonition} from '#/components/Admonition'
import {Error} from '#/components/Error' import {Error} from '#/components/Error'
import * as Toggle from '#/components/forms/Toggle' import * as Toggle from '#/components/forms/Toggle'
import {Loader} from '#/components/Loader' import {Loader} from '#/components/Loader'
@@ -71,22 +72,13 @@ export function NotificationsSettingsScreen({}: Props) {
</Toggle.Item> </Toggle.Item>
</View> </View>
</Toggle.Group> </Toggle.Group>
<View <Admonition type="warning" style={[a.mt_sm]}>
style={[
a.mt_sm,
a.px_xl,
a.py_lg,
a.rounded_md,
t.atoms.bg_contrast_25,
]}>
<Text style={[t.atoms.text_contrast_high, a.leading_snug]}>
<Trans> <Trans>
Experimental: When this preference is enabled, you'll only Experimental: When this preference is enabled, you'll only receive
receive reply and quote notifications from users you follow. reply and quote notifications from users you follow. We'll
We'll continue to add more controls here over time. continue to add more controls here over time.
</Trans> </Trans>
</Text> </Admonition>
</View>
</View> </View>
)} )}
</ScrollView> </ScrollView>