@atlaskit/editor-plugin-avatar-group
Version:
Avatar Group plugin for @atlaskit/editor-core.
50 lines (49 loc) • 1.96 kB
JavaScript
import React from 'react';
import { injectIntl } from 'react-intl';
import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks';
import messages from '@atlaskit/editor-common/messages';
import { Avatars } from './avatars';
import { InviteToEditButton } from './invite-to-edit';
const AvatarsWithPluginState = props => {
const title = props.intl.formatMessage(messages.inviteToEditButtonTitle);
const {
isInviteToEditButtonSelected: selected,
inviteToEditHandler: onClick,
inviteToEditComponent: Component,
editorView,
featureFlags,
editorAnalyticsAPI,
editorAPI
} = props;
const {
sessionId,
activeParticipants,
initialised
} = useSharedPluginStateWithSelector(editorAPI, ['collabEdit'], states => {
var _states$collabEditSta, _states$collabEditSta2, _states$collabEditSta3;
return {
sessionId: (_states$collabEditSta = states.collabEditState) === null || _states$collabEditSta === void 0 ? void 0 : _states$collabEditSta.sessionId,
activeParticipants: (_states$collabEditSta2 = states.collabEditState) === null || _states$collabEditSta2 === void 0 ? void 0 : _states$collabEditSta2.activeParticipants,
initialised: (_states$collabEditSta3 = states.collabEditState) === null || _states$collabEditSta3 === void 0 ? void 0 : _states$collabEditSta3.initialised
};
});
if (!initialised) {
return null;
}
return /*#__PURE__*/React.createElement(Avatars, {
sessionId: sessionId,
participants: activeParticipants,
editorView: editorView,
featureFlags: featureFlags,
editorAnalyticsAPI: editorAnalyticsAPI,
editorAPI: editorAPI
}, /*#__PURE__*/React.createElement(InviteToEditButton, {
title: title,
selected: selected,
onClick: onClick,
Component: Component
}));
};
// eslint-disable-next-line @typescript-eslint/ban-types
const _default_1 = injectIntl(AvatarsWithPluginState);
export default _default_1;