UNPKG

@orfeas126/box-ui-elements

Version:
106 lines (105 loc) 4.35 kB
/** * * @file Versions Item Actions component * @author Box */ import * as React from 'react'; import { FormattedMessage } from 'react-intl'; import DropdownMenu from '../../../components/dropdown-menu'; import IconClockPast from '../../../icons/general/IconClockPast'; import IconDownload from '../../../icons/general/IconDownload'; import IconEllipsis from '../../../icons/general/IconEllipsis'; import IconOpenWith from '../../../icons/general/IconOpenWith'; import IconTrash from '../../../icons/general/IconTrash'; import IconUpload from '../../../icons/general/IconUpload'; import messages from './messages'; import PlainButton from '../../../components/plain-button'; import Tooltip from '../../../components/tooltip/Tooltip'; import VersionsItemAction from './VersionsItemAction'; import { Menu } from '../../../components/menu'; import './VersionsItemActions.scss'; const handleMenuClose = event => { event.stopPropagation(); }; const handleToggleClick = event => { event.stopPropagation(); }; const VersionsItemActions = ({ fileId, isCurrent = false, isRetained = false, onDelete, onDownload, onPreview, onPromote, onRestore, showDelete = false, showDownload = false, showPreview = false, showPromote = false, showRestore = false }) => { if (!showDelete && !showDownload && !showPreview && !showPromote && !showRestore) { return null; } return /*#__PURE__*/React.createElement(DropdownMenu, { className: "bcs-VersionsItemActions", constrainToScrollParent: true, constrainToWindow: true, isRightAligned: true, onMenuClose: handleMenuClose }, /*#__PURE__*/React.createElement(PlainButton, { className: "bcs-VersionsItemActions-toggle", "data-resin-iscurrent": isCurrent, "data-resin-itemid": fileId, "data-resin-target": "overflow", onClick: handleToggleClick, type: "button" }, /*#__PURE__*/React.createElement(IconEllipsis, { height: 4, width: 14 }), /*#__PURE__*/React.createElement(FormattedMessage, messages.versionActionToggle, text => /*#__PURE__*/React.createElement("span", { className: "accessibility-hidden" }, text))), /*#__PURE__*/React.createElement(Menu, { className: "bcs-VersionsItemActions-menu", "data-resin-component": "preview" // Needed for resin events due to tether moving menu to body , "data-resin-feature": "versions" // Needed for resin events due to tether moving menu to body }, showPreview && /*#__PURE__*/React.createElement(VersionsItemAction, { action: "preview", fileId: fileId, isCurrent: isCurrent, onClick: onPreview }, /*#__PURE__*/React.createElement(IconOpenWith, null), /*#__PURE__*/React.createElement(FormattedMessage, messages.versionActionPreview)), showDownload && /*#__PURE__*/React.createElement(VersionsItemAction, { action: "download", fileId: fileId, isCurrent: isCurrent, onClick: onDownload }, /*#__PURE__*/React.createElement(IconDownload, null), /*#__PURE__*/React.createElement(FormattedMessage, messages.versionActionDownload)), showPromote && /*#__PURE__*/React.createElement(VersionsItemAction, { action: "promote", fileId: fileId, isCurrent: isCurrent, onClick: onPromote }, /*#__PURE__*/React.createElement(IconUpload, null), /*#__PURE__*/React.createElement(FormattedMessage, messages.versionActionPromote)), showRestore && /*#__PURE__*/React.createElement(VersionsItemAction, { action: "restore", fileId: fileId, isCurrent: isCurrent, onClick: onRestore }, /*#__PURE__*/React.createElement(IconClockPast, { height: 14, width: 14 }), /*#__PURE__*/React.createElement(FormattedMessage, messages.versionActionRestore)), showDelete && /*#__PURE__*/React.createElement(Tooltip, { position: "middle-left", text: /*#__PURE__*/React.createElement(FormattedMessage, messages.versionActionDisabledRetention), isTabbable: false, isDisabled: !isRetained }, /*#__PURE__*/React.createElement(VersionsItemAction, { action: "remove", fileId: fileId, isCurrent: isCurrent, isDisabled: isRetained, onClick: onDelete }, /*#__PURE__*/React.createElement(IconTrash, null), /*#__PURE__*/React.createElement(FormattedMessage, messages.versionActionDelete))))); }; export default VersionsItemActions; //# sourceMappingURL=VersionsItemActions.js.map