diff options
Diffstat (limited to 'src/state/queries/service.ts')
-rw-r--r-- | src/state/queries/service.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/state/queries/service.ts b/src/state/queries/service.ts new file mode 100644 index 000000000..5f7e10778 --- /dev/null +++ b/src/state/queries/service.ts @@ -0,0 +1,26 @@ +import {BskyAgent} from '@atproto/api' +import {useQuery} from '@tanstack/react-query' + +export const RQKEY = (serviceUrl: string) => ['service', serviceUrl] + +export function useServiceQuery(serviceUrl: string) { + return useQuery({ + 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 + } +} |