feat: added infinite scroll to feed page

This commit is contained in:
MTG2000
2022-04-18 16:37:59 +03:00
parent 1a13cd6c3c
commit 1f817c8a79
12 changed files with 125 additions and 36 deletions

View File

@@ -0,0 +1,34 @@
import { QueryResult } from "@apollo/client";
import { useCallback, useState } from "react";
export const useInfiniteQuery = (query: QueryResult, dataField: string) => {
const [fetchingMore, setFetchingMore] = useState(false)
const [reachedLastPage, setReachedLastPage] = useState(false)
const fetchMore = useCallback(
() => {
if (!fetchingMore && !reachedLastPage) {
setFetchingMore(true);
// console.log(feedQuery.variables?.skip);
query.fetchMore({
variables: {
skip: query.data?.[dataField].length,
}
}).then((d) => {
if (d.data?.[dataField].length === 0)
setReachedLastPage(true)
setFetchingMore(false)
})
}
}
, [dataField, fetchingMore, query, reachedLastPage]
)
return {
isFetchingMore: fetchingMore,
fetchMore: fetchMore
}
}