UNPKG

@reactionable/amplify

Version:
45 lines 1.38 kB
import { useQuery } from "@reactionable/core"; import { useEffect, useState } from "react"; import { queryList, } from "./QueryList"; export const useQueryList = (query, options) => { const [currentToken, setCurrentToken] = useState(); const [nextToken, setNextToken] = useState(); const [previousToken, setPreviousToken] = useState(); const [list, setList] = useState([]); const variables = { ...options?.variables, nextToken: currentToken, }; const queryOptions = { ...options, variables, handleQuery: (options) => queryList({ query, ...options }), }; const { refetch, data, ...result } = useQuery(queryOptions); const refetchList = () => { setList([]); refetch(); }; const next = () => { setPreviousToken(currentToken); setCurrentToken(nextToken); }; const previous = () => setCurrentToken(previousToken); useEffect(() => { setList(data ? data.items || [] : []); if (data) { setNextToken(data.nextToken); } }, [data]); return { ...result, data: { items: list, count: 0, }, refetch: refetchList, next: nextToken ? next : undefined, previous: currentToken ? previous : undefined, }; }; //# sourceMappingURL=useQueryList.js.map