@atlaskit/editor-plugin-mentions
Version:
Mentions plugin for @atlaskit/editor-core
195 lines (193 loc) • 9.57 kB
JavaScript
/* ProfileCardComponent.tsx generated by @compiled/babel-plugin v0.39.1 */
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ProfileCardComponent = ProfileCardComponent;
exports.useProfileCardState = void 0;
require("./ProfileCardComponent.compiled.css");
var _react = _interopRequireWildcard(require("react"));
var React = _react;
var _runtime = require("@compiled/react/runtime");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _bindEventListener = require("bind-event-listener");
var _user = require("@atlaskit/profilecard/user");
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
var _PopperWrapper = require("./PopperWrapper");
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); }
var styles = {
loadingStyles: "_2rko12b0 _16qs130s"
};
var LoadingWrapper = function LoadingWrapper(_ref) {
var children = _ref.children,
isLoading = _ref.isLoading;
return isLoading ? /*#__PURE__*/React.createElement("div", {
className: (0, _runtime.ax)([styles.loadingStyles])
}, children) : children;
};
var useProfileCardState = exports.useProfileCardState = function useProfileCardState(_ref2) {
var id = _ref2.id,
provider = _ref2.provider;
var _useState = (0, _react.useState)(),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
data = _useState2[0],
setData = _useState2[1];
var _useState3 = (0, _react.useState)(undefined),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
reportingLinesData = _useState4[0],
setReportingLinesData = _useState4[1];
var _useState5 = (0, _react.useState)(false),
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
shouldShowGiveKudos = _useState6[0],
setShouldShowGiveKudos = _useState6[1];
var _useState7 = (0, _react.useState)(undefined),
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
teamCentralBaseUrl = _useState8[0],
setTeamCentralBaseUrl = _useState8[1];
var _useState9 = (0, _react.useState)(false),
_useState0 = (0, _slicedToArray2.default)(_useState9, 2),
isLoading = _useState0[0],
setIsLoading = _useState0[1];
var _useState1 = (0, _react.useState)(false),
_useState10 = (0, _slicedToArray2.default)(_useState1, 2),
hasError = _useState10[0],
setHasError = _useState10[1];
// From: packages/people-and-teams/profilecard/src/components/User/ProfileCardTrigger.tsx
(0, _react.useEffect)(function () {
var fetchData = /*#__PURE__*/function () {
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
var _yield$Promise$all, _yield$Promise$all2, _data, reportingLines, shouldGiveKudos, _teamCentralBaseUrl;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
if (!(!id || !provider)) {
_context.next = 2;
break;
}
return _context.abrupt("return");
case 2:
setIsLoading(true);
_context.prev = 3;
_context.next = 6;
return Promise.all([provider === null || provider === void 0 ? void 0 : provider.resourceClient.getProfile((provider === null || provider === void 0 ? void 0 : provider.cloudId) || '', id, function () {}), provider === null || provider === void 0 ? void 0 : provider.resourceClient.getReportingLines(id), provider === null || provider === void 0 ? void 0 : provider.resourceClient.shouldShowGiveKudos(), provider === null || provider === void 0 ? void 0 : provider.resourceClient.getTeamCentralBaseUrl({
withOrgContext: true,
withSiteContext: true
})]);
case 6:
_yield$Promise$all = _context.sent;
_yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 4);
_data = _yield$Promise$all2[0];
reportingLines = _yield$Promise$all2[1];
shouldGiveKudos = _yield$Promise$all2[2];
_teamCentralBaseUrl = _yield$Promise$all2[3];
setData(_data);
setReportingLinesData(reportingLines);
setShouldShowGiveKudos(shouldGiveKudos !== null && shouldGiveKudos !== void 0 ? shouldGiveKudos : false);
setTeamCentralBaseUrl(_teamCentralBaseUrl);
setHasError(false);
_context.next = 22;
break;
case 19:
_context.prev = 19;
_context.t0 = _context["catch"](3);
setHasError(true);
case 22:
_context.prev = 22;
setIsLoading(false);
return _context.finish(22);
case 25:
case "end":
return _context.stop();
}
}, _callee, null, [[3, 19, 22, 25]]);
}));
return function fetchData() {
return _ref3.apply(this, arguments);
};
}();
fetchData();
}, [id, provider]);
return {
data: data,
reportingLinesData: reportingLinesData,
shouldShowGiveKudos: shouldShowGiveKudos,
teamCentralBaseUrl: teamCentralBaseUrl,
isLoading: isLoading,
hasError: hasError
};
};
function ProfileCardComponent(_ref4) {
var _ref6;
var profilecardProvider = _ref4.profilecardProvider,
activeMention = _ref4.activeMention,
dom = _ref4.dom,
closeComponent = _ref4.closeComponent;
var _useState11 = (0, _react.useState)(undefined),
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
provider = _useState12[0],
setProvider = _useState12[1];
(0, _react.useEffect)(function () {
profilecardProvider === null || profilecardProvider === void 0 || profilecardProvider.then(function (p) {
setProvider(p);
});
}, [profilecardProvider]);
var _ref5 = (_ref6 = activeMention.attrs) !== null && _ref6 !== void 0 ? _ref6 : {},
id = _ref5.id,
text = _ref5.text,
accessLevel = _ref5.accessLevel;
var actions = (0, _react.useMemo)(function () {
return provider === null || provider === void 0 ? void 0 : provider.getActions(id, text !== null && text !== void 0 ? text : '', accessLevel);
}, [accessLevel, id, provider, text]);
var _useProfileCardState = useProfileCardState({
id: id,
provider: provider
}),
data = _useProfileCardState.data,
reportingLinesData = _useProfileCardState.reportingLinesData,
shouldShowGiveKudos = _useProfileCardState.shouldShowGiveKudos,
teamCentralBaseUrl = _useProfileCardState.teamCentralBaseUrl,
isLoading = _useProfileCardState.isLoading,
hasError = _useProfileCardState.hasError;
(0, _react.useEffect)(function () {
return (0, _bindEventListener.bind)(window, {
type: 'keydown',
listener: function listener(e) {
if (e.key === 'Escape') {
closeComponent();
}
}
});
});
return /*#__PURE__*/React.createElement(_PopperWrapper.Popup, {
referenceElement: dom
}, /*#__PURE__*/React.createElement(LoadingWrapper, {
isLoading: isLoading
}, /*#__PURE__*/React.createElement(_user.ProfileCardLazy, {
avatarUrl: data === null || data === void 0 ? void 0 : data.avatarUrl,
accountType: data === null || data === void 0 ? void 0 : data.accountType,
status: data === null || data === void 0 ? void 0 : data.status,
statusModifiedDate: data === null || data === void 0 ? void 0 : data.statusModifiedDate,
timestring: data === null || data === void 0 ? void 0 : data.timestring,
isCurrentUser: data === null || data === void 0 ? void 0 : data.isCurrentUser,
isBot: data === null || data === void 0 ? void 0 : data.isBot,
fullName: data === null || data === void 0 ? void 0 : data.fullName,
userId: id,
cloudId: provider === null || provider === void 0 ? void 0 : provider.cloudId,
actions: actions,
isLoading: isLoading,
location: data === null || data === void 0 ? void 0 : data.location,
companyName: data === null || data === void 0 ? void 0 : data.companyName,
customLozenges: data === null || data === void 0 ? void 0 : data.customLozenges,
nickname: data === null || data === void 0 ? void 0 : data.nickname,
email: data === null || data === void 0 ? void 0 : data.email,
hasError: hasError,
reportingLines: reportingLinesData,
isKudosEnabled: shouldShowGiveKudos,
teamCentralBaseUrl: teamCentralBaseUrl,
isRenderedInPortal: (0, _expValEquals.expValEquals)('editor_a11y_7152_profile_card_tab_order', 'isEnabled', true)
})));
}