@atlaskit/profilecard
Version:
A React component to display a card with user information.
51 lines • 1.85 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import React, { useCallback, useState } from 'react';
import { useIntl } from 'react-intl-next';
import { IconButton } from '@atlaskit/button/new';
import MoreIcon from '@atlaskit/icon/core/show-more-horizontal';
import { MenuGroup, Section } from '@atlaskit/menu';
import Popup from '@atlaskit/popup';
import { Box } from '@atlaskit/primitives/compiled';
import { messages } from './messages';
export var MoreActions = function MoreActions(_ref) {
var actions = _ref.actions,
loading = _ref.loading;
var _useIntl = useIntl(),
formatMessage = _useIntl.formatMessage;
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
isOpen = _useState2[0],
setOpen = _useState2[1];
var onMoreClick = useCallback(function (shouldBeOpen) {
setOpen(shouldBeOpen);
}, []);
return /*#__PURE__*/React.createElement(Popup, {
isOpen: isOpen,
onClose: function onClose() {
return setOpen(false);
},
content: function content() {
return /*#__PURE__*/React.createElement(MenuGroup, {
spacing: "cozy"
}, /*#__PURE__*/React.createElement(Section, null, actions.map(function (action) {
return /*#__PURE__*/React.createElement(Box, {
key: action.id
}, action.item);
})));
},
trigger: function trigger(triggerProps) {
return /*#__PURE__*/React.createElement(IconButton, _extends({}, triggerProps, {
icon: MoreIcon,
label: formatMessage(messages.showMoreIconLabel),
onClick: function onClick() {
return onMoreClick(!isOpen);
},
isSelected: isOpen,
isLoading: loading
}));
},
placement: "right-start",
shouldRenderToParent: false
});
};