UNPKG

@reactionable/amplify

Version:
49 lines 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useQueryList = void 0; const core_1 = require("@reactionable/core"); const react_1 = require("react"); const QueryList_1 = require("./QueryList"); const useQueryList = (query, options) => { const [currentToken, setCurrentToken] = (0, react_1.useState)(); const [nextToken, setNextToken] = (0, react_1.useState)(); const [previousToken, setPreviousToken] = (0, react_1.useState)(); const [list, setList] = (0, react_1.useState)([]); const variables = { ...options?.variables, nextToken: currentToken, }; const queryOptions = { ...options, variables, handleQuery: (options) => (0, QueryList_1.queryList)({ query, ...options }), }; const { refetch, data, ...result } = (0, core_1.useQuery)(queryOptions); const refetchList = () => { setList([]); refetch(); }; const next = () => { setPreviousToken(currentToken); setCurrentToken(nextToken); }; const previous = () => setCurrentToken(previousToken); (0, react_1.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, }; }; exports.useQueryList = useQueryList; //# sourceMappingURL=useQueryList.js.map