about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2024-05-07 21:09:02 -0500
committerGitHub <noreply@github.com>2024-05-07 21:09:02 -0500
commit31a8356aef278414d4e70985ddbf3f76e6a455f1 (patch)
treeda87b2c03ffc8bfe48eab7cc091e6c62fedb7497 /src
parent165fdb704959837d244eebf12f61803676b15366 (diff)
downloadvoidsky-31a8356aef278414d4e70985ddbf3f76e6a455f1.tar.zst
Handle invalid service URLs (#3908)
Diffstat (limited to 'src')
-rw-r--r--src/screens/Messages/List/index.tsx13
-rw-r--r--src/screens/Messages/Temp/useDmServiceUrlStorage.tsx9
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])