diff options
Diffstat (limited to 'src/state/queries/profile-extra-info.ts')
-rw-r--r-- | src/state/queries/profile-extra-info.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/state/queries/profile-extra-info.ts b/src/state/queries/profile-extra-info.ts new file mode 100644 index 000000000..8fc32c33e --- /dev/null +++ b/src/state/queries/profile-extra-info.ts @@ -0,0 +1,34 @@ +import {useQuery} from '@tanstack/react-query' + +import {getAgent} from '#/state/session' +import {STALE} from '#/state/queries' + +// TODO refactor invalidate on mutate? +export const RQKEY = (did: string) => ['profile-extra-info', did] + +/** + * Fetches some additional information for the profile screen which + * is not available in the API's ProfileView + */ +export function useProfileExtraInfoQuery(did: string) { + return useQuery({ + staleTime: STALE.MINUTES.ONE, + queryKey: RQKEY(did), + async queryFn() { + const [listsRes, feedsRes] = await Promise.all([ + getAgent().app.bsky.graph.getLists({ + actor: did, + limit: 1, + }), + getAgent().app.bsky.feed.getActorFeeds({ + actor: did, + limit: 1, + }), + ]) + return { + hasLists: listsRes.data.lists.length > 0, + hasFeedgens: feedsRes.data.feeds.length > 0, + } + }, + }) +} |