UNPKG

@atlaskit/profilecard

Version:

A React component to display a card with user information.

161 lines (160 loc) 8.31 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.AgentProfileCardTrigger = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _analyticsNext = require("@atlaskit/analytics-next"); var _analytics = require("../../util/analytics"); var _rovoAgentUtils = require("../../util/rovoAgentUtils"); var _ProfileCardTrigger = _interopRequireDefault(require("../common/ProfileCardTrigger")); var _lazyAgentProfileCard = require("./lazyAgentProfileCard"); var _excluded = ["trigger", "viewingUserId", "product"]; function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var AgentProfileCardTrigger = exports.AgentProfileCardTrigger = function AgentProfileCardTrigger(_ref) { var _ref$trigger = _ref.trigger, trigger = _ref$trigger === void 0 ? 'hover' : _ref$trigger, viewingUserId = _ref.viewingUserId, product = _ref.product, props = (0, _objectWithoutProperties2.default)(_ref, _excluded); var resourceClient = props.resourceClient, userId = props.agentId, cloudId = props.cloudId; var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(), createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent; var fireAnalytics = (0, _react.useCallback)(function (payload) { if (createAnalyticsEvent) { (0, _analytics.fireEvent)(createAnalyticsEvent, payload); } }, [createAnalyticsEvent]); var getCreator = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(creator_type, creator) { var _userId, creatorInfo; return _regenerator.default.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (creator) { _context.next = 2; break; } return _context.abrupt("return", undefined); case 2: _context.t0 = creator_type; _context.next = _context.t0 === 'SYSTEM' ? 5 : _context.t0 === 'THIRD_PARTY' ? 6 : _context.t0 === 'FORGE' ? 7 : _context.t0 === 'CUSTOMER' ? 8 : 21; break; case 5: return _context.abrupt("return", { type: 'SYSTEM' }); case 6: return _context.abrupt("return", { type: 'THIRD_PARTY', name: creator !== null && creator !== void 0 ? creator : '' }); case 7: return _context.abrupt("return", { type: 'THIRD_PARTY', name: creator !== null && creator !== void 0 ? creator : '' }); case 8: _userId = (0, _rovoAgentUtils.getAAIDFromARI)(creator) || ''; _context.prev = 9; if (!(!_userId || !cloudId)) { _context.next = 12; break; } return _context.abrupt("return", undefined); case 12: _context.next = 14; return props.resourceClient.getProfile(cloudId, _userId, fireAnalytics); case 14: creatorInfo = _context.sent; return _context.abrupt("return", { type: 'CUSTOMER', name: creatorInfo.fullName, profileLink: "/people/".concat(_userId), id: _userId }); case 18: _context.prev = 18; _context.t1 = _context["catch"](9); return _context.abrupt("return", undefined); case 21: return _context.abrupt("return", undefined); case 22: case "end": return _context.stop(); } }, _callee, null, [[9, 18]]); })); return function getCreator(_x, _x2) { return _ref2.apply(this, arguments); }; }(); var fetchAgentProfile = /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() { var agentInfo, agentCreatorInfo; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return resourceClient.getRovoAgentProfile({ type: 'agent', value: userId }, fireAnalytics); case 2: agentInfo = _context2.sent; _context2.next = 5; return getCreator(agentInfo.creator_type, agentInfo.creator || undefined); case 5: agentCreatorInfo = _context2.sent; return _context2.abrupt("return", _objectSpread(_objectSpread({}, agentInfo), {}, { creatorInfo: agentCreatorInfo })); case 7: case "end": return _context2.stop(); } }, _callee2); })); return function fetchAgentProfile() { return _ref3.apply(this, arguments); }; }(); var renderProfileCard = function renderProfileCard(_ref4) { var _profileData$creatorI; var profileData = _ref4.profileData, error = _ref4.error; return /*#__PURE__*/_react.default.createElement(_react.Suspense, { fallback: null }, /*#__PURE__*/_react.default.createElement(_lazyAgentProfileCard.AgentProfileCardLazy, { agent: profileData, hasError: !!error, isCreatedByViewingUser: (profileData === null || profileData === void 0 ? void 0 : profileData.creatorInfo) && (profileData === null || profileData === void 0 || (_profileData$creatorI = profileData.creatorInfo) === null || _profileData$creatorI === void 0 ? void 0 : _profileData$creatorI.id) === viewingUserId, cloudId: props.cloudId, product: product, errorType: error, onChatClick: props.onChatClick, onConversationStartersClick: props.onConversationStartersClick, resourceClient: props.resourceClient, addFlag: props.addFlag })); }; return /*#__PURE__*/_react.default.createElement(_ProfileCardTrigger.default, (0, _extends2.default)({}, props, { trigger: "hover", renderProfileCard: renderProfileCard, fetchProfile: fetchAgentProfile, fireAnalytics: fireAnalytics, profileCardType: "agent" })); };