diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-05-03 16:32:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-03 16:32:20 +0100 |
commit | aeed4786db28e9efcf41ed81ab06c108fa8e3fc0 (patch) | |
tree | e11611f5eb8fda4f5c117b2ed47de70429c3dab9 /src | |
parent | 67b0cdf649c4735be0e1feb69a919e41e45f593a (diff) | |
download | voidsky-aeed4786db28e9efcf41ed81ab06c108fa8e3fc0.tar.zst |
make service url gate friendlier (#3841)
Diffstat (limited to 'src')
-rw-r--r-- | src/screens/Messages/List/index.tsx | 32 | ||||
-rw-r--r-- | src/view/screens/Settings/index.tsx | 24 |
2 files changed, 32 insertions, 24 deletions
diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index df22ff2b4..d97ddc699 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -6,6 +6,7 @@ import {ChatBskyConvoDefs} from '@atproto-labs/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {sha256} from 'js-sha256' import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' import {MessagesTabNavigatorParams} from '#/lib/routes/types' @@ -25,6 +26,7 @@ import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DialogControlProps, useDialogControl} from '#/components/Dialog' import {ConvoMenu} from '#/components/dms/ConvoMenu' import {NewChat} from '#/components/dms/NewChat' +import * as TextField from '#/components/forms/TextField' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {SettingsSliderVertical_Stroke2_Corner0_Rounded as SettingsSlider} from '#/components/icons/SettingsSlider' import {Link} from '#/components/Link' @@ -32,6 +34,7 @@ import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' import {useMenuControl} from '#/components/Menu' import {Text} from '#/components/Typography' import {ClipClopGate} from '../gate' +import {useDmServiceUrlStorage} from '../Temp/useDmServiceUrlStorage' type Props = NativeStackScreenProps<MessagesTabNavigatorParams, 'Messages'> export function MessagesScreen({navigation}: Props) { @@ -40,6 +43,16 @@ export function MessagesScreen({navigation}: Props) { const newChatControl = useDialogControl() const {gtMobile} = useBreakpoints() + // TEMP + const {serviceUrl, setServiceUrl} = useDmServiceUrlStorage() + const hasValidServiceUrl = useMemo(() => { + const hash = sha256(serviceUrl) + return ( + hash === + 'a32318b49dd3fe6aa6a35c66c13fcc4c1cb6202b24f5a852d9a2279acee4169f' + ) + }, [serviceUrl]) + const renderButton = useCallback(() => { return ( <Link @@ -112,6 +125,25 @@ export function MessagesScreen({navigation}: Props) { const gate = useGate() if (!gate('dms')) return <ClipClopGate /> + if (!hasValidServiceUrl) { + return ( + <CenteredView sideBorders style={[a.flex_1, a.p_md]}> + <View> + <TextField.LabelText>Service URL</TextField.LabelText> + <TextField.Root> + <TextField.Input + value={serviceUrl} + onChangeText={text => setServiceUrl(text)} + autoCapitalize="none" + keyboardType="url" + label="https://" + /> + </TextField.Root> + </View> + </CenteredView> + ) + } + if (conversations.length < 1) { return ( <View style={a.flex_1}> diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index 2e4e8c10a..6c8208351 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -50,7 +50,6 @@ import {HandIcon, HashtagIcon} from 'lib/icons' import {makeProfileLink} from 'lib/routes/links' import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {NavigationProp} from 'lib/routes/types' -import {useGate} from 'lib/statsig/statsig' import {colors, s} from 'lib/styles' import {AccountDropdownBtn} from 'view/com/util/AccountDropdownBtn' import {SelectableBtn} from 'view/com/util/forms/SelectableBtn' @@ -61,11 +60,9 @@ import {Text} from 'view/com/util/text/Text' import * as Toast from 'view/com/util/Toast' import {UserAvatar} from 'view/com/util/UserAvatar' import {ScrollView} from 'view/com/util/Views' -import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' import {useTheme} from '#/alf' import {useDialogControl} from '#/components/Dialog' import {BirthDateSettingsDialog} from '#/components/dialogs/BirthDateSettings' -import * as TextField from '#/components/forms/TextField' import {navigate, resetToTab} from '#/Navigation' import {Email2FAToggle} from './Email2FAToggle' import {ExportCarDialog} from './ExportCarDialog' @@ -190,11 +187,6 @@ export function SettingsScreen({}: Props) { const {pendingDid, onPressSwitchAccount} = useAccountSwitcher() const isSwitchingAccounts = !!pendingDid - // TODO: TEMP REMOVE WHEN CLOPS ARE RELEASED - const gate = useGate() - const {serviceUrl: dmServiceUrl, setServiceUrl: setDmServiceUrl} = - useDmServiceUrlStorage() - // const primaryBg = useCustomPalette<ViewStyle>({ // light: {backgroundColor: colors.blue0}, // dark: {backgroundColor: colors.blue6}, @@ -807,22 +799,6 @@ export function SettingsScreen({}: Props) { <Trans>System log</Trans> </Text> </TouchableOpacity> - {gate('dms') && ( - <TextField.Root> - <TextField.Input - value={dmServiceUrl} - onChangeText={(text: string) => { - if (text.length > 9 && text.endsWith('/')) { - text = text.slice(0, -1) - } - setDmServiceUrl(text) - }} - autoCapitalize="none" - keyboardType="url" - label="🐴" - /> - </TextField.Root> - )} {__DEV__ ? ( <> <TouchableOpacity |