diff options
Diffstat (limited to 'src/screens/Settings')
-rw-r--r-- | src/screens/Settings/AboutSettings.tsx | 1 | ||||
-rw-r--r-- | src/screens/Settings/AccessibilitySettings.tsx | 1 | ||||
-rw-r--r-- | src/screens/Settings/AccountSettings.tsx | 1 | ||||
-rw-r--r-- | src/screens/Settings/AppPasswords.tsx | 2 | ||||
-rw-r--r-- | src/screens/Settings/ContentAndMediaSettings.tsx | 57 | ||||
-rw-r--r-- | src/screens/Settings/ExternalMediaPreferences.tsx | 2 | ||||
-rw-r--r-- | src/screens/Settings/FollowingFeedPreferences.tsx | 1 | ||||
-rw-r--r-- | src/screens/Settings/LanguageSettings.tsx | 2 | ||||
-rw-r--r-- | src/screens/Settings/NotificationSettings.tsx | 1 | ||||
-rw-r--r-- | src/screens/Settings/PrivacyAndSecuritySettings.tsx | 1 | ||||
-rw-r--r-- | src/screens/Settings/Settings.tsx | 2 | ||||
-rw-r--r-- | src/screens/Settings/ThreadPreferences.tsx | 7 | ||||
-rw-r--r-- | src/screens/Settings/components/AddAppPasswordDialog.tsx | 2 | ||||
-rw-r--r-- | src/screens/Settings/components/ChangeHandleDialog.tsx | 3 | ||||
-rw-r--r-- | src/screens/Settings/components/CopyButton.tsx | 2 | ||||
-rw-r--r-- | src/screens/Settings/components/DisableEmail2FADialog.tsx | 2 | ||||
-rw-r--r-- | src/screens/Settings/components/SettingsList.tsx | 1 |
17 files changed, 59 insertions, 29 deletions
diff --git a/src/screens/Settings/AboutSettings.tsx b/src/screens/Settings/AboutSettings.tsx index 3c445b966..8019a20f9 100644 --- a/src/screens/Settings/AboutSettings.tsx +++ b/src/screens/Settings/AboutSettings.tsx @@ -1,4 +1,3 @@ -import React from 'react' import {Platform} from 'react-native' import {setStringAsync} from 'expo-clipboard' import {msg, Trans} from '@lingui/macro' diff --git a/src/screens/Settings/AccessibilitySettings.tsx b/src/screens/Settings/AccessibilitySettings.tsx index dfe2c14a5..6ab0131d9 100644 --- a/src/screens/Settings/AccessibilitySettings.tsx +++ b/src/screens/Settings/AccessibilitySettings.tsx @@ -1,4 +1,3 @@ -import React from 'react' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {NativeStackScreenProps} from '@react-navigation/native-stack' diff --git a/src/screens/Settings/AccountSettings.tsx b/src/screens/Settings/AccountSettings.tsx index 35c5f3aa0..2495a0f2f 100644 --- a/src/screens/Settings/AccountSettings.tsx +++ b/src/screens/Settings/AccountSettings.tsx @@ -1,4 +1,3 @@ -import React from 'react' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {NativeStackScreenProps} from '@react-navigation/native-stack' diff --git a/src/screens/Settings/AppPasswords.tsx b/src/screens/Settings/AppPasswords.tsx index 8cebf97ce..1ea0bd1b3 100644 --- a/src/screens/Settings/AppPasswords.tsx +++ b/src/screens/Settings/AppPasswords.tsx @@ -1,4 +1,4 @@ -import React, {useCallback} from 'react' +import {useCallback} from 'react' import {View} from 'react-native' import Animated, { FadeIn, diff --git a/src/screens/Settings/ContentAndMediaSettings.tsx b/src/screens/Settings/ContentAndMediaSettings.tsx index 6d293fbea..27448ba9a 100644 --- a/src/screens/Settings/ContentAndMediaSettings.tsx +++ b/src/screens/Settings/ContentAndMediaSettings.tsx @@ -1,4 +1,3 @@ -import React from 'react' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {NativeStackScreenProps} from '@react-navigation/native-stack' @@ -10,9 +9,16 @@ import { useInAppBrowser, useSetInAppBrowser, } from '#/state/preferences/in-app-browser' +import { + useOptOutOfUtm, + useSetOptOutOfUtm, +} from '#/state/preferences/opt-out-of-utm' import * as SettingsList from '#/screens/Settings/components/SettingsList' +import {atoms as a} from '#/alf' +import {Admonition} from '#/components/Admonition' import * as Toggle from '#/components/forms/Toggle' import {Bubbles_Stroke2_Corner2_Rounded as BubblesIcon} from '#/components/icons/Bubble' +import {ChainLink3_Stroke2_Corner0_Rounded as ChainLinkIcon} from '#/components/icons/ChainLink' import {Hashtag_Stroke2_Corner0_Rounded as HashtagIcon} from '#/components/icons/Hashtag' import {Home_Stroke2_Corner2_Rounded as HomeIcon} from '#/components/icons/Home' import {Macintosh_Stroke2_Corner2_Rounded as MacintoshIcon} from '#/components/icons/Macintosh' @@ -30,6 +36,8 @@ export function ContentAndMediaSettingsScreen({}: Props) { const setAutoplayDisabledPref = useSetAutoplayDisabled() const inAppBrowserPref = useInAppBrowser() const setUseInAppBrowser = useSetInAppBrowser() + const optOutOfUtm = useOptOutOfUtm() + const setOptOutOfUtm = useSetOptOutOfUtm() return ( <Layout.Screen> @@ -69,6 +77,19 @@ export function ContentAndMediaSettingsScreen({}: Props) { </SettingsList.ItemText> </SettingsList.LinkItem> <SettingsList.Divider /> + <Toggle.Item + name="disable_autoplay" + label={_(msg`Autoplay videos and GIFs`)} + value={!autoplayDisabledPref} + onChange={value => setAutoplayDisabledPref(!value)}> + <SettingsList.Item> + <SettingsList.ItemIcon icon={PlayIcon} /> + <SettingsList.ItemText> + <Trans>Autoplay videos and GIFs</Trans> + </SettingsList.ItemText> + <Toggle.Platform /> + </SettingsList.Item> + </Toggle.Item> {isNative && ( <Toggle.Item name="use_in_app_browser" @@ -84,19 +105,31 @@ export function ContentAndMediaSettingsScreen({}: Props) { </SettingsList.Item> </Toggle.Item> )} - <Toggle.Item - name="disable_autoplay" - label={_(msg`Autoplay videos and GIFs`)} - value={!autoplayDisabledPref} - onChange={value => setAutoplayDisabledPref(!value)}> + {isNative && <SettingsList.Divider />} + {isNative && ( + <Toggle.Item + name="allow_utm" + label={_(msg`Specify Bluesky as a referer`)} + value={!(optOutOfUtm ?? false)} + onChange={value => setOptOutOfUtm(!value)}> + <SettingsList.Item> + <SettingsList.ItemIcon icon={ChainLinkIcon} /> + <SettingsList.ItemText> + <Trans>Send Bluesky referrer</Trans> + </SettingsList.ItemText> + <Toggle.Platform /> + </SettingsList.Item> + </Toggle.Item> + )} + {isNative && ( <SettingsList.Item> - <SettingsList.ItemIcon icon={PlayIcon} /> - <SettingsList.ItemText> - <Trans>Autoplay videos and GIFs</Trans> - </SettingsList.ItemText> - <Toggle.Platform /> + <Admonition type="info" style={[a.flex_1]}> + <Trans> + Helps external sites estimate traffic from Bluesky. + </Trans> + </Admonition> </SettingsList.Item> - </Toggle.Item> + )} </SettingsList.Container> </Layout.Content> </Layout.Screen> diff --git a/src/screens/Settings/ExternalMediaPreferences.tsx b/src/screens/Settings/ExternalMediaPreferences.tsx index 91c7ea7fc..f7e081429 100644 --- a/src/screens/Settings/ExternalMediaPreferences.tsx +++ b/src/screens/Settings/ExternalMediaPreferences.tsx @@ -1,4 +1,4 @@ -import React, {Fragment} from 'react' +import {Fragment} from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/screens/Settings/FollowingFeedPreferences.tsx b/src/screens/Settings/FollowingFeedPreferences.tsx index 12de2a31a..089491dd0 100644 --- a/src/screens/Settings/FollowingFeedPreferences.tsx +++ b/src/screens/Settings/FollowingFeedPreferences.tsx @@ -1,4 +1,3 @@ -import React from 'react' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/screens/Settings/LanguageSettings.tsx b/src/screens/Settings/LanguageSettings.tsx index c6cd8bb5a..acad0520c 100644 --- a/src/screens/Settings/LanguageSettings.tsx +++ b/src/screens/Settings/LanguageSettings.tsx @@ -1,4 +1,4 @@ -import React, {useCallback, useMemo} from 'react' +import {useCallback, useMemo} from 'react' import {View} from 'react-native' import RNPickerSelect, {PickerSelectProps} from 'react-native-picker-select' import {msg, Trans} from '@lingui/macro' diff --git a/src/screens/Settings/NotificationSettings.tsx b/src/screens/Settings/NotificationSettings.tsx index 8e1033742..c5f7078c4 100644 --- a/src/screens/Settings/NotificationSettings.tsx +++ b/src/screens/Settings/NotificationSettings.tsx @@ -1,4 +1,3 @@ -import React from 'react' import {Text} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/screens/Settings/PrivacyAndSecuritySettings.tsx b/src/screens/Settings/PrivacyAndSecuritySettings.tsx index 12e28e0d2..d695f830d 100644 --- a/src/screens/Settings/PrivacyAndSecuritySettings.tsx +++ b/src/screens/Settings/PrivacyAndSecuritySettings.tsx @@ -1,4 +1,3 @@ -import React from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/screens/Settings/Settings.tsx b/src/screens/Settings/Settings.tsx index adea42e5e..126a1bc88 100644 --- a/src/screens/Settings/Settings.tsx +++ b/src/screens/Settings/Settings.tsx @@ -1,4 +1,4 @@ -import React, {useState} from 'react' +import {useState} from 'react' import {LayoutAnimation, Pressable, View} from 'react-native' import {Linking} from 'react-native' import {useReducedMotion} from 'react-native-reanimated' diff --git a/src/screens/Settings/ThreadPreferences.tsx b/src/screens/Settings/ThreadPreferences.tsx index 24dd91bf6..d29daa58b 100644 --- a/src/screens/Settings/ThreadPreferences.tsx +++ b/src/screens/Settings/ThreadPreferences.tsx @@ -1,4 +1,3 @@ -import React from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -57,6 +56,12 @@ export function ThreadPreferencesScreen({}: Props) { values={sortReplies ? [sortReplies] : []} onChange={values => setThreadViewPrefs({sort: values[0]})}> <View style={[a.gap_sm, a.flex_1]}> + <Toggle.Item name="hotness" label={_(msg`Hot replies first`)}> + <Toggle.Radio /> + <Toggle.LabelText> + <Trans>Hot replies first</Trans> + </Toggle.LabelText> + </Toggle.Item> <Toggle.Item name="oldest" label={_(msg`Oldest replies first`)}> diff --git a/src/screens/Settings/components/AddAppPasswordDialog.tsx b/src/screens/Settings/components/AddAppPasswordDialog.tsx index dcb212879..927875778 100644 --- a/src/screens/Settings/components/AddAppPasswordDialog.tsx +++ b/src/screens/Settings/components/AddAppPasswordDialog.tsx @@ -1,4 +1,4 @@ -import React, {useEffect, useMemo, useState} from 'react' +import {useEffect, useMemo, useState} from 'react' import {useWindowDimensions, View} from 'react-native' import Animated, { FadeIn, diff --git a/src/screens/Settings/components/ChangeHandleDialog.tsx b/src/screens/Settings/components/ChangeHandleDialog.tsx index e76d6257f..9b2c4f7c3 100644 --- a/src/screens/Settings/components/ChangeHandleDialog.tsx +++ b/src/screens/Settings/components/ChangeHandleDialog.tsx @@ -1,4 +1,4 @@ -import React, {useCallback, useMemo, useState} from 'react' +import {useCallback, useMemo, useState} from 'react' import {useWindowDimensions, View} from 'react-native' import Animated, { FadeIn, @@ -86,7 +86,6 @@ function ChangeHandleDialogInner() { return ( <Dialog.ScrollableInner label={_(msg`Change Handle`)} - style={[a.overflow_hidden]} header={ <Dialog.Header renderLeft={cancelButton}> <Dialog.HeaderText> diff --git a/src/screens/Settings/components/CopyButton.tsx b/src/screens/Settings/components/CopyButton.tsx index 8c6cdfa8a..82c11f58d 100644 --- a/src/screens/Settings/components/CopyButton.tsx +++ b/src/screens/Settings/components/CopyButton.tsx @@ -1,4 +1,4 @@ -import React, {useCallback, useEffect, useState} from 'react' +import {useCallback, useEffect, useState} from 'react' import {GestureResponderEvent, View} from 'react-native' import Animated, { FadeOutUp, diff --git a/src/screens/Settings/components/DisableEmail2FADialog.tsx b/src/screens/Settings/components/DisableEmail2FADialog.tsx index 1378759b0..8ee49c989 100644 --- a/src/screens/Settings/components/DisableEmail2FADialog.tsx +++ b/src/screens/Settings/components/DisableEmail2FADialog.tsx @@ -1,4 +1,4 @@ -import React, {useState} from 'react' +import {useState} from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/screens/Settings/components/SettingsList.tsx b/src/screens/Settings/components/SettingsList.tsx index 07117aef3..520df4118 100644 --- a/src/screens/Settings/components/SettingsList.tsx +++ b/src/screens/Settings/components/SettingsList.tsx @@ -213,7 +213,6 @@ export function ItemIcon({ } export function ItemText({ - // eslint-disable-next-line react/prop-types style, ...props }: React.ComponentProps<typeof Button.ButtonText>) { |