synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
37 lines • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useGetUserProfileWithProfilePic = exports.useGetUserProfile = void 0;
var tslib_1 = require("tslib");
var react_query_1 = require("react-query");
var __1 = require("../..");
var getUserData_1 = require("../../functions/getUserData");
var SynapseContext_1 = require("../../SynapseContext");
function useGetUserProfile(principalId, options) {
var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
var queryKey = [accessToken, 'user', principalId, 'profile'];
// We store the profile in a session storage cache used by SWC
var sessionStorageCacheKey = principalId + "_USER_PROFILE";
var cachedValue = sessionStorage.getItem(sessionStorageCacheKey);
return (0, react_query_1.useQuery)(queryKey, function () { return __1.SynapseClient.getUserProfileById(accessToken, principalId); }, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), {
// Use the sessionStorage cache to pre-populate profile data.
initialData: cachedValue
? JSON.parse(cachedValue)
: undefined,
// If the profile is re-fetched, save it to sessionStorage
onSuccess: function (profile) {
sessionStorage.setItem(sessionStorageCacheKey, JSON.stringify(profile));
} }));
}
exports.useGetUserProfile = useGetUserProfile;
function useGetUserProfileWithProfilePic(principalId, options) {
var _a;
var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
var queryKey = [accessToken, 'user', principalId, 'profile', 'withPic'];
var userProfile = useGetUserProfile(principalId, {
enabled: (_a = options === null || options === void 0 ? void 0 : options.enabled) !== null && _a !== void 0 ? _a : true,
}).data;
// TODO: create useGetFile hook with careful configuration to prevent serving expired pre-signed URLs
return (0, react_query_1.useQuery)(queryKey, function () { return (0, getUserData_1.getProfilePic)(userProfile, accessToken); }, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), { enabled: !!userProfile }));
}
exports.useGetUserProfileWithProfilePic = useGetUserProfileWithProfilePic;
//# sourceMappingURL=useUserBundle.js.map