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

62 lines 3.54 kB
"use strict"; 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