synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
46 lines • 2.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useGetUserChallengesInfinite = void 0;
var tslib_1 = require("tslib");
var react_query_1 = require("react-query");
var __1 = require("../..");
var SynapseContext_1 = require("../../SynapseContext");
function useGetUserChallengesInfinite(userId, options) {
var _this = this;
var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
return (0, react_query_1.useInfiniteQuery)(['getuserchallenges', userId], function (context) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
var challenges, challengeProjectIds, challengeProjects_1, challengeWithProjectHeaderPagedResults;
return (0, tslib_1.__generator)(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, __1.SynapseClient.getUserChallenges(accessToken, userId, context.pageParam, // pass the context.pageParam for the new offset
10 // limit
)
// also look up the challenge project names (if there are challenges)
];
case 1:
challenges = _a.sent();
if (!(challenges.results.length > 0)) return [3 /*break*/, 3];
challengeProjectIds = Array.from(challenges.results, function (challenge) { return challenge.projectId; });
return [4 /*yield*/, __1.SynapseClient.getEntityHeadersByIds(challengeProjectIds)];
case 2:
challengeProjects_1 = _a.sent();
challengeWithProjectHeaderPagedResults = {
results: Array.from(challenges.results, function (challenge, index) { return { challenge: challenge, projectHeader: challengeProjects_1.results[index] }; }),
totalNumberOfResults: challenges.totalNumberOfResults
};
return [2 /*return*/, challengeWithProjectHeaderPagedResults];
case 3: return [2 /*return*/, {
results: [],
totalNumberOfResults: challenges.totalNumberOfResults
}];
}
});
}); }, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), { getNextPageParam: function (lastPage, pages) {
if (lastPage.results.length > 0)
return pages.length * 10; //set the new offset to (page * limit)
else
return undefined;
} }));
}
exports.useGetUserChallengesInfinite = useGetUserChallengesInfinite;
//# sourceMappingURL=useGetUserChallenges.js.map