diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx
index ce8f52af..ca757fac 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) {
Service URL
setServiceUrl(text)}
+ value={serviceUrlValue}
+ onChangeText={text => setServiceUrlValue(text)}
autoCapitalize="none"
keyboardType="url"
label="https://"
/>
+
)
diff --git a/src/screens/Messages/Temp/useDmServiceUrlStorage.tsx b/src/screens/Messages/Temp/useDmServiceUrlStorage.tsx
index d78128b5..0e3f8760 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])