UNPKG

@atlaskit/profilecard

Version:

A React component to display a card with user information.

189 lines (187 loc) 9.78 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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _platformFeatureFlags = require("@atlaskit/platform-feature-flags"); var _isForgeAgent = require("@atlaskit/rovo-agent-components/common/utils/is-forge-agent"); var _navigation = require("@atlaskit/teams-app-config/navigation"); var _teamsAppInternalAnalytics = require("@atlaskit/teams-app-internal-analytics"); var _rovoAgentUtils = require("../../util/rovoAgentUtils"); var _ProfileCardTrigger = _interopRequireDefault(require("../common/ProfileCardTrigger")); var _lazyAgentProfileCard = require("./lazyAgentProfileCard"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } 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 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) { var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref)); var resourceClient = props.resourceClient, userId = props.agentId, cloudId = props.cloudId; var _useAnalyticsEvents = (0, _teamsAppInternalAnalytics.useAnalyticsEvents)(), fireEvent = _useAnalyticsEvents.fireEvent; /** * @TODO replace with `getAgentCreator` from `@atlassian/rovo-agent-components` * @deprecated use `getAgentCreator` from `@atlassian/rovo-agent-components` */ var getCreator = /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref2) { var creator_type, creator, authoringTeam, _userId, _authoringTeam$displa, _authoringTeam$profil, _navigateToTeamsApp, profileHref, creatorInfo; return _regenerator.default.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: creator_type = _ref2.creator_type, creator = _ref2.creator, authoringTeam = _ref2.authoringTeam; if (creator) { _context.next = 3; break; } return _context.abrupt("return", undefined); case 3: if (!((0, _isForgeAgent.isForgeAgentByCreatorType)(creator_type) && (0, _platformFeatureFlags.fg)('rovo_agent_support_a2a_avatar'))) { _context.next = 5; break; } return _context.abrupt("return", { type: 'THIRD_PARTY', name: creator !== null && creator !== void 0 ? creator : '' }); case 5: _context.t0 = creator_type; _context.next = _context.t0 === 'SYSTEM' ? 8 : _context.t0 === 'THIRD_PARTY' ? 9 : _context.t0 === 'FORGE' ? 10 : _context.t0 === 'CUSTOMER' ? 11 : 27; break; case 8: return _context.abrupt("return", { type: 'SYSTEM' }); case 9: return _context.abrupt("return", { type: 'THIRD_PARTY', name: creator !== null && creator !== void 0 ? creator : '' }); case 10: return _context.abrupt("return", { type: 'THIRD_PARTY', name: creator !== null && creator !== void 0 ? creator : '' }); case 11: _userId = (0, _rovoAgentUtils.getAAIDFromARI)(creator) || ''; _context.prev = 12; if (!(!_userId || !cloudId)) { _context.next = 15; break; } return _context.abrupt("return", undefined); case 15: if (!authoringTeam) { _context.next = 17; break; } return _context.abrupt("return", { type: 'CUSTOMER', name: (_authoringTeam$displa = authoringTeam.displayName) !== null && _authoringTeam$displa !== void 0 ? _authoringTeam$displa : '', profileLink: (_authoringTeam$profil = authoringTeam.profileUrl) !== null && _authoringTeam$profil !== void 0 ? _authoringTeam$profil : '' }); case 17: _navigateToTeamsApp = (0, _navigation.navigateToTeamsApp)({ type: 'USER', payload: { userId: _userId }, cloudId: cloudId }), profileHref = _navigateToTeamsApp.href; _context.next = 20; return props.resourceClient.getProfile(cloudId, _userId, fireEvent); case 20: creatorInfo = _context.sent; return _context.abrupt("return", { type: 'CUSTOMER', name: creatorInfo.fullName, profileLink: (0, _platformFeatureFlags.fg)('platform-adopt-teams-nav-config') ? profileHref : "/people/".concat(_userId), id: _userId }); case 24: _context.prev = 24; _context.t1 = _context["catch"](12); return _context.abrupt("return", undefined); case 27: return _context.abrupt("return", undefined); case 28: case "end": return _context.stop(); } }, _callee, null, [[12, 24]]); })); return function getCreator(_x) { return _ref3.apply(this, arguments); }; }(); var fetchAgentProfile = /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() { var _agentProfileResult$a, _agentProfileResult$a2; var agentProfileResult, 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 }, fireEvent); case 2: agentProfileResult = _context2.sent; agentInfo = agentProfileResult.restData; _context2.next = 6; return getCreator({ creator_type: agentInfo.creator_type, creator: agentInfo.creator || undefined, authoringTeam: (_agentProfileResult$a = (_agentProfileResult$a2 = agentProfileResult.aggData) === null || _agentProfileResult$a2 === void 0 ? void 0 : _agentProfileResult$a2.authoringTeam) !== null && _agentProfileResult$a !== void 0 ? _agentProfileResult$a : undefined }); case 6: agentCreatorInfo = _context2.sent; return _context2.abrupt("return", _objectSpread(_objectSpread({}, agentInfo), {}, { creatorInfo: agentCreatorInfo })); case 8: case "end": return _context2.stop(); } }, _callee2); })); return function fetchAgentProfile() { return _ref4.apply(this, arguments); }; }(); var renderProfileCard = function renderProfileCard(_ref5) { var profileData = _ref5.profileData, error = _ref5.error; return /*#__PURE__*/_react.default.createElement(_react.Suspense, { fallback: null }, /*#__PURE__*/_react.default.createElement(_lazyAgentProfileCard.AgentProfileCardLazy, { agent: profileData, hasError: !!error, cloudId: props.cloudId, errorType: error, onChatClick: props.onChatClick, onConversationStartersClick: props.onConversationStartersClick, resourceClient: props.resourceClient, onDeleteAgent: props.onDeleteAgent, addFlag: props.addFlag })); }; return /*#__PURE__*/_react.default.createElement(_ProfileCardTrigger.default, (0, _extends2.default)({}, props, { ref: ref, trigger: "hover", renderProfileCard: renderProfileCard, fetchProfile: fetchAgentProfile, fireAnalytics: fireEvent, profileCardType: "agent" })); });