UNPKG

@reactionable/amplify

Version:
37 lines 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useQueryList = void 0; const tslib_1 = require("tslib"); 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 = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.variables), { nextToken: currentToken }); const queryOptions = Object.assign(Object.assign({}, options), { variables, handleQuery: (options) => (0, QueryList_1.queryList)(Object.assign({ query }, options)) }); const _a = (0, core_1.useQuery)(queryOptions), { refetch, data } = _a, result = tslib_1.__rest(_a, ["refetch", "data"]); 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 Object.assign(Object.assign({}, result), { data: { items: list, count: 0, }, refetch: refetchList, next: nextToken ? next : undefined, previous: currentToken ? previous : undefined }); }; exports.useQueryList = useQueryList; //# sourceMappingURL=useQueryList.js.map