diff options
author | Samuel Newman <mozzius@protonmail.com> | 2023-11-30 17:09:10 +0000 |
---|---|---|
committer | Samuel Newman <mozzius@protonmail.com> | 2023-11-30 17:09:10 +0000 |
commit | c06611fb71c3a0fdce54e2889bf2caaf7460143c (patch) | |
tree | fee9b411ea3439a89b2c09a71afce1389eb211ec /src/state/queries | |
parent | 60886b76c8baded58d84c111f2d92db49514f940 (diff) | |
download | voidsky-c06611fb71c3a0fdce54e2889bf2caaf7460143c.tar.zst |
show informative message when token scope is wrong
Diffstat (limited to 'src/state/queries')
-rw-r--r-- | src/state/queries/invites.ts | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/state/queries/invites.ts b/src/state/queries/invites.ts index c42ba29d5..367917af5 100644 --- a/src/state/queries/invites.ts +++ b/src/state/queries/invites.ts @@ -3,6 +3,7 @@ import {useQuery} from '@tanstack/react-query' import {getAgent} from '#/state/session' import {STALE} from '#/state/queries' +import {cleanError} from '#/lib/strings/errors' function isInviteAvailable(invite: ComAtprotoServerDefs.InviteCode): boolean { return invite.available - invite.uses.length > 0 && !invite.disabled @@ -17,7 +18,24 @@ export function useInviteCodesQuery() { staleTime: STALE.HOURS.ONE, queryKey: ['inviteCodes'], queryFn: async () => { - const res = await getAgent().com.atproto.server.getAccountInviteCodes({}) + const res = await getAgent() + .com.atproto.server.getAccountInviteCodes({}) + .catch(e => { + if (cleanError(e) === 'Bad token scope') { + return null + } else { + throw e + } + }) + + if (res === null) { + return { + disabled: true, + all: [], + available: [], + used: [], + } + } if (!res.data?.codes) { throw new Error(`useInviteCodesQuery: no codes returned`) @@ -27,6 +45,7 @@ export function useInviteCodesQuery() { const used = res.data.codes.filter(code => !isInviteAvailable(code)) return { + disabled: false, all: [...available, ...used], available, used, |