diff options
Diffstat (limited to 'src/state/queries/feed.ts')
-rw-r--r-- | src/state/queries/feed.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts index e3bcbc83e..58c1261db 100644 --- a/src/state/queries/feed.ts +++ b/src/state/queries/feed.ts @@ -160,6 +160,35 @@ export function useFeedSourceInfoQuery({uri}: {uri: string}) { }) } +export const isFeedPublicQueryKey = ({uri}: {uri: string}) => [ + 'isFeedPublic', + uri, +] + +export function useIsFeedPublicQuery({uri}: {uri: string}) { + return useQuery({ + queryKey: isFeedPublicQueryKey({uri}), + queryFn: async ({queryKey}) => { + const [, uri] = queryKey + try { + const res = await getAgent().app.bsky.feed.getFeed({ + feed: uri, + limit: 1, + }) + return Boolean(res.data.feed) + } catch (e: any) { + const msg = e.toString() as string + + if (msg.includes('missing jwt')) { + return false + } + + return true + } + }, + }) +} + export const useGetPopularFeedsQueryKey = ['getPopularFeeds'] export function useGetPopularFeedsQuery() { |