diff options
author | Eric Bailey <git@esb.lol> | 2024-05-07 21:09:02 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-07 21:09:02 -0500 |
commit | 31a8356aef278414d4e70985ddbf3f76e6a455f1 (patch) | |
tree | da87b2c03ffc8bfe48eab7cc091e6c62fedb7497 /src | |
parent | 165fdb704959837d244eebf12f61803676b15366 (diff) | |
download | voidsky-31a8356aef278414d4e70985ddbf3f76e6a455f1.tar.zst |
Handle invalid service URLs (#3908)
Diffstat (limited to 'src')
-rw-r--r-- | src/screens/Messages/List/index.tsx | 13 | ||||
-rw-r--r-- | src/screens/Messages/Temp/useDmServiceUrlStorage.tsx | 9 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index ce8f52af9..ca757fac0 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -47,6 +47,7 @@ export function MessagesScreen({navigation}: Props) { // TEMP const {serviceUrl, setServiceUrl} = useDmServiceUrlStorage() + const [serviceUrlValue, setServiceUrlValue] = useState(serviceUrl) const hasValidServiceUrl = useMemo(() => { const hash = sha256(serviceUrl) return ( @@ -136,13 +137,21 @@ export function MessagesScreen({navigation}: Props) { <TextField.LabelText>Service URL</TextField.LabelText> <TextField.Root> <TextField.Input - value={serviceUrl} - onChangeText={text => setServiceUrl(text)} + value={serviceUrlValue} + onChangeText={text => setServiceUrlValue(text)} autoCapitalize="none" keyboardType="url" label="https://" /> </TextField.Root> + <Button + label="Set Service URL" + size="small" + variant="solid" + color="primary" + onPress={() => setServiceUrl(serviceUrlValue)}> + <ButtonText>Set</ButtonText> + </Button> </View> </ScrollView> ) diff --git a/src/screens/Messages/Temp/useDmServiceUrlStorage.tsx b/src/screens/Messages/Temp/useDmServiceUrlStorage.tsx index d78128b5c..0e3f87603 100644 --- a/src/screens/Messages/Temp/useDmServiceUrlStorage.tsx +++ b/src/screens/Messages/Temp/useDmServiceUrlStorage.tsx @@ -35,7 +35,14 @@ export function DmServiceUrlProvider({children}: {children: React.ReactNode}) { React.useEffect(() => { ;(async () => { const v = await getItem() - setServiceUrl(v ?? '') + try { + if (v) { + new URL(v) + setServiceUrl(v) + } + } catch (e) { + console.error('Invalid service URL stored in async storage:', v) + } })() }, [getItem]) |