about summary refs log tree commit diff
path: root/src/state/queries/search-posts.ts
blob: 03f3ba339f5eb03582393efe7545d158b919c37f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import {AppBskyFeedSearchPosts} from '@atproto/api'
import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query'

import {getAgent} from '#/state/session'

const searchPostsQueryKey = ({query}: {query: string}) => [
  'search-posts',
  query,
]

export function useSearchPostsQuery({query}: {query: string}) {
  return useInfiniteQuery<
    AppBskyFeedSearchPosts.OutputSchema,
    Error,
    InfiniteData<AppBskyFeedSearchPosts.OutputSchema>,
    QueryKey,
    string | undefined
  >({
    queryKey: searchPostsQueryKey({query}),
    queryFn: async () => {
      const res = await getAgent().app.bsky.feed.searchPosts({
        q: query,
        limit: 25,
      })
      return res.data
    },
    initialPageParam: undefined,
    getNextPageParam: lastPage => lastPage.cursor,
  })
}