frontend client for gemstone. decentralised workplace app
at main 894 B view raw
1import type { AtUri } from "@/lib/types/atproto"; 2import { getInviteFromPds } from "@/queries/get-invite-from-pds"; 3import { useQuery } from "@tanstack/react-query"; 4 5export const useInviteQuery = (atUri: Required<AtUri>) => { 6 const queryKey = ["invite", atUri.authority, atUri.rKey]; 7 return { 8 queryKey, 9 useQuery: () => 10 useQuery({ 11 queryKey, 12 queryFn: async () => { 13 return await pdsInviteQueryFn(atUri); 14 }, 15 }), 16 }; 17}; 18 19const pdsInviteQueryFn = async (atUri: Required<AtUri>) => { 20 const invites = await getInviteFromPds(atUri); 21 22 if (!invites.ok) { 23 console.error("pdsInviteQueryFn error.", invites.error); 24 throw new Error( 25 `Something went wrong while getting the user's invite record directly.}`, 26 ); 27 } 28 29 return invites.data; 30};