UNPKG

synapse-react-client

Version:

[![Build Status](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client.svg?branch=main)](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synaps

37 lines 2.26 kB
"use strict"; 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