@atlaskit/profilecard
Version:
A React component to display a card with user information.
161 lines (160 loc) • 8.31 kB
JavaScript
;
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"
}));
};