@atlaskit/profilecard
Version:
A React component to display a card with user information.
39 lines • 1.4 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
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 const MoreActions = ({
actions,
loading
}) => {
const {
formatMessage
} = useIntl();
const [isOpen, setOpen] = useState(false);
const onMoreClick = useCallback(shouldBeOpen => {
setOpen(shouldBeOpen);
}, []);
return /*#__PURE__*/React.createElement(Popup, {
isOpen: isOpen,
onClose: () => setOpen(false),
content: () => /*#__PURE__*/React.createElement(MenuGroup, {
spacing: "cozy"
}, /*#__PURE__*/React.createElement(Section, null, actions.map(action => /*#__PURE__*/React.createElement(Box, {
key: action.id
}, action.item)))),
trigger: triggerProps => /*#__PURE__*/React.createElement(IconButton, _extends({}, triggerProps, {
icon: MoreIcon,
label: formatMessage(messages.showMoreIconLabel),
onClick: () => onMoreClick(!isOpen),
isSelected: isOpen,
isLoading: loading
})),
placement: "right-start",
shouldRenderToParent: false
});
};