UNPKG

@atlaskit/editor-plugin-avatar-group

Version:

Avatar Group plugin for @atlaskit/editor-core.

65 lines (64 loc) 3.28 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireDefault(require("react")); var _memoizeOne = _interopRequireDefault(require("memoize-one")); var _messages = require("@atlaskit/editor-common/messages"); var _platformFeatureFlags = require("@atlaskit/platform-feature-flags"); var _coloredAvatarItem = require("./colored-avatar-item"); var getUserNameForAttribution = function getUserNameForAttribution(participant, participants) { var _participants$find; var userNamesById = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var actingUserId = participant.actingUserId; if (!(0, _platformFeatureFlags.fg)('platform_move_presence_agents') || !actingUserId) { return undefined; } var currentParticipantName = (_participants$find = participants.find(function (user) { return user.sessionId !== participant.sessionId && user.userId === actingUserId && user.isHydrated; })) === null || _participants$find === void 0 ? void 0 : _participants$find.name; return currentParticipantName !== null && currentParticipantName !== void 0 ? currentParticipantName : userNamesById[actingUserId]; }; var getAvatarName = function getAvatarName(participant, participants, formatMessage, userNamesById) { var participantName = participant.name || formatMessage(_messages.avatarGroupMessages.anonymousCollaborator); var userNameForAttribution = getUserNameForAttribution(participant, participants, userNamesById); if (!userNameForAttribution) { return participantName; } return formatMessage(_messages.avatarGroupMessages.agentWithUser, { agentName: participantName, userName: userNameForAttribution }); }; var toAvatar = function toAvatar(participant, api, formatMessage, participants) { var userNamesById = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; return { name: getAvatarName(participant, participants, formatMessage, userNamesById), src: participant.avatar, size: 'medium', presence: /*#__PURE__*/_react.default.createElement(_coloredAvatarItem.ColoredAvatarItem, { api: api, name: participant.name, sessionId: participant.sessionId, presenceId: participant.presenceId }) }; }; var _default_1 = (0, _memoizeOne.default)(toAvatar, function participantEquals(_ref, _ref2) { var _ref3 = (0, _slicedToArray2.default)(_ref, 5), a = _ref3[0], aParticipants = _ref3[3], _ref3$ = _ref3[4], aUserNamesById = _ref3$ === void 0 ? {} : _ref3$; var _ref4 = (0, _slicedToArray2.default)(_ref2, 5), b = _ref4[0], bParticipants = _ref4[3], _ref4$ = _ref4[4], bUserNamesById = _ref4$ === void 0 ? {} : _ref4$; var actingUserId = a.actingUserId; return a.name === b.name && a.avatar === b.avatar && a.sessionId === b.sessionId && actingUserId === b.actingUserId && (!actingUserId || getUserNameForAttribution(a, aParticipants, aUserNamesById) === getUserNameForAttribution(b, bParticipants, bUserNamesById)); }); var _default = exports.default = _default_1;