From da2bdf5d6f84ed726fb131f00fac5ef458be6f7e Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 16 May 2024 16:57:07 +0100 Subject: [🐴] use Toggle component in settings screen (#4048) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * use Toggle component * nits + notifs sounds native only --- src/components/RadioGroup.tsx | 76 --------------------------------- src/screens/Messages/Settings.tsx | 88 +++++++++++++++++++++++++++------------ 2 files changed, 62 insertions(+), 102 deletions(-) delete mode 100644 src/components/RadioGroup.tsx (limited to 'src') diff --git a/src/components/RadioGroup.tsx b/src/components/RadioGroup.tsx deleted file mode 100644 index 010f65bc3..000000000 --- a/src/components/RadioGroup.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import React from 'react' -import {View, ViewProps} from 'react-native' - -import {atoms as a, useTheme} from '#/alf' -import {Button} from './Button' -import {Text} from './Typography' - -export function RadioGroup({ - value, - onSelect, - items, - ...props -}: ViewProps & { - value: T - onSelect: (value: T) => void - items: Array<{label: string; value: T}> -}) { - return ( - - {items.map(item => ( - - ))} - - ) -} - -function RadioIcon({selected}: {selected: boolean}) { - const t = useTheme() - return ( - - {selected && ( - - )} - - ) -} diff --git a/src/screens/Messages/Settings.tsx b/src/screens/Messages/Settings.tsx index 84b804b42..a9c35dba7 100644 --- a/src/screens/Messages/Settings.tsx +++ b/src/screens/Messages/Settings.tsx @@ -8,6 +8,7 @@ import {UseQueryResult} from '@tanstack/react-query' import {CommonNavigatorParams} from '#/lib/routes/types' import {useGate} from '#/lib/statsig/statsig' +import {isNative} from '#/platform/detection' import {useUpdateActorDeclaration} from '#/state/queries/messages/actor-declaration' import {useProfileQuery} from '#/state/queries/profile' import {useSession} from '#/state/session' @@ -15,8 +16,8 @@ import * as Toast from '#/view/com/util/Toast' import {ViewHeader} from '#/view/com/util/ViewHeader' import {CenteredView} from '#/view/com/util/Views' import {atoms as a} from '#/alf' +import {Divider} from '#/components/Divider' import * as Toggle from '#/components/forms/Toggle' -import {RadioGroup} from '#/components/RadioGroup' import {Text} from '#/components/Typography' import {useBackgroundNotificationPreferences} from '../../../modules/expo-background-notification-handler/src/BackgroundNotificationHandlerProvider' import {ClipClopGate} from './gate' @@ -39,7 +40,9 @@ export function MessagesSettingsScreen({}: Props) { }) const onSelectItem = useCallback( - (key: string) => { + (keys: string[]) => { + const key = keys[0] + if (!key) return updateDeclaration(key as AllowIncoming) }, [updateDeclaration], @@ -48,37 +51,70 @@ export function MessagesSettingsScreen({}: Props) { const gate = useGate() if (!gate('dms')) return + console.log(profile?.associated?.chat?.allowIncoming) + return ( - - + + Allow messages from - - value={ + - - - { - setPref('playSoundChat', !preferences.playSoundChat) - }}> - - Notification Sounds - + onChange={onSelectItem}> + + + + Everyone + + + + + + Users I follow + + + + + + No one + + + + + + {isNative && ( + <> + + { + setPref('playSoundChat', !preferences.playSoundChat) + }}> + + + Play notification sounds + + + + )} ) -- cgit 1.4.1