feat: monorepo

This commit is contained in:
qier222 2022-05-12 02:45:43 +08:00
parent 4d54060a4f
commit 42089d4996
No known key found for this signature in database
GPG key ID: 9C85007ED905F14D
200 changed files with 1530 additions and 1521 deletions

View file

@ -0,0 +1,33 @@
import { FetchTracksParams, TrackApiNames } from '@/shared/api/Track'
import { useInfiniteQuery } from 'react-query'
import { fetchTracks } from '../api/track'
// 100 tracks each page
const offset = 100
export default function useTracksInfinite(params: FetchTracksParams) {
return useInfiniteQuery(
[TrackApiNames.FetchTracks, params],
({ pageParam = 0 }) => {
const cursorStart = pageParam * offset
const cursorEnd = cursorStart + offset
const ids = params.ids.slice(cursorStart, cursorEnd)
return fetchTracks({ ids })
},
{
enabled: params.ids.length !== 0,
refetchOnMount: false,
refetchOnWindowFocus: false,
refetchOnReconnect: false,
refetchInterval: 0,
staleTime: Infinity,
getNextPageParam: (lastPage, pages) => {
// 当 return undefined 时hasNextPage会等于false
// 当 return 非 undefined 时return 的数据会传入上面的fetchTracks函数中
return pages.length * offset < params.ids.length // 判断是否还有下一页
? pages.length
: undefined
},
}
)
}