synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
62 lines • 3.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserCard = void 0;
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importStar)(require("react"));
var SynapseClient_1 = require("../utils/SynapseClient");
var utils_1 = require("../utils/");
var UserCardSmall_1 = require("./UserCardSmall");
var UserCardMedium_1 = (0, tslib_1.__importDefault)(require("./UserCardMedium"));
var Avatar_1 = require("./Avatar");
var SynapseContext_1 = require("../utils/SynapseContext");
var useUserBundle_1 = require("../utils/hooks/SynapseAPI/useUserBundle");
var UserCard = function (props) {
var initialProfile = props.userProfile, initialPreSignedURL = props.preSignedURL, size = props.size, ownerId = props.ownerId, alias = props.alias, rest = (0, tslib_1.__rest)(props, ["userProfile", "preSignedURL", "size", "ownerId", "alias"]);
var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
var _a = (0, react_1.useState)(initialProfile), userProfile = _a[0], setUserProfile = _a[1];
var _b = (0, react_1.useState)(ownerId), principalId = _b[0], setPrincipalId = _b[1];
var _c = (0, react_1.useState)(true), isLoading = _c[0], setIsLoading = _c[1];
var _d = (0, react_1.useState)(initialPreSignedURL), preSignedURL = _d[0], setPresignedUrl = _d[1];
var profileAndImage = (0, useUserBundle_1.useGetUserProfileWithProfilePic)(principalId, {
enabled: !!principalId,
}).data;
(0, react_1.useEffect)(function () {
if (profileAndImage) {
if (!initialProfile) {
setUserProfile(profileAndImage.userProfile);
}
if (!initialPreSignedURL) {
setPresignedUrl(profileAndImage.preSignedURL);
}
}
}, [profileAndImage, initialPreSignedURL, initialProfile]);
(0, react_1.useEffect)(function () {
if (userProfile) {
setIsLoading(false);
}
else if (alias) {
// Before we can get the profile, we must get the principal ID using the alias
(0, SynapseClient_1.getPrincipalAliasRequest)(accessToken, alias, 'USER_NAME').then(function (aliasData) {
setPrincipalId(aliasData.principalId.toString());
});
}
}, [userProfile, alias, accessToken]);
function getCard(cardSize, propsForChild) {
switch (cardSize) {
case utils_1.SynapseConstants.AVATAR:
return react_1.default.createElement(Avatar_1.Avatar, (0, tslib_1.__assign)({}, propsForChild));
case utils_1.SynapseConstants.SMALL_USER_CARD:
return react_1.default.createElement(UserCardSmall_1.UserCardSmall, (0, tslib_1.__assign)({}, propsForChild));
case utils_1.SynapseConstants.MEDIUM_USER_CARD:
return react_1.default.createElement(UserCardMedium_1.default, (0, tslib_1.__assign)({}, propsForChild));
case utils_1.SynapseConstants.LARGE_USER_CARD:
return react_1.default.createElement(UserCardMedium_1.default, (0, tslib_1.__assign)({ isLarge: true }, propsForChild));
default:
return react_1.default.createElement("span", null);
}
}
return isLoading || userProfile == null ? (react_1.default.createElement(react_1.default.Fragment, null)) : (getCard(props.size, (0, tslib_1.__assign)({ userProfile: userProfile, imageURL: preSignedURL }, rest)));
};
exports.UserCard = UserCard;
exports.default = exports.UserCard;
//# sourceMappingURL=UserCard.js.map