about summary refs log tree commit diff
path: root/src/state/queries/service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/state/queries/service.ts')
-rw-r--r--src/state/queries/service.ts20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/state/queries/service.ts b/src/state/queries/service.ts
index df12d6cbc..5f7e10778 100644
--- a/src/state/queries/service.ts
+++ b/src/state/queries/service.ts
@@ -1,16 +1,26 @@
+import {BskyAgent} from '@atproto/api'
 import {useQuery} from '@tanstack/react-query'
 
-import {useSession} from '#/state/session'
-
 export const RQKEY = (serviceUrl: string) => ['service', serviceUrl]
 
-export function useServiceQuery() {
-  const {agent} = useSession()
+export function useServiceQuery(serviceUrl: string) {
   return useQuery({
-    queryKey: RQKEY(agent.service.toString()),
+    queryKey: RQKEY(serviceUrl),
     queryFn: async () => {
+      const agent = new BskyAgent({service: serviceUrl})
       const res = await agent.com.atproto.server.describeServer()
       return res.data
     },
+    enabled: isValidUrl(serviceUrl),
   })
 }
+
+function isValidUrl(url: string) {
+  try {
+    // eslint-disable-next-line @typescript-eslint/no-unused-vars
+    const urlp = new URL(url)
+    return true
+  } catch {
+    return false
+  }
+}