UNPKG

metadata-based-explorer1

Version:
79 lines (68 loc) 2.49 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /** * * @file Item action component */ import React from 'react'; import { injectIntl } from 'react-intl'; import PlainButton from '../../components/plain-button/PlainButton'; import Tooltip from '../../components/tooltip'; import IconCheck from '../../icons/general/IconCheck'; import IconClose from '../../icons/general/IconClose'; import IconRetry from '../../icons/general/IconRetry'; import messages from '../common/messages'; import IconInProgress from './IconInProgress'; import { STATUS_PENDING, STATUS_IN_PROGRESS, STATUS_STAGED, STATUS_COMPLETE, STATUS_ERROR } from '../../constants'; import './ItemAction.scss'; var ICON_CHECK_COLOR = '#26C281'; var ItemAction = function ItemAction(_ref) { var status = _ref.status, onClick = _ref.onClick, intl = _ref.intl, _ref$isFolder = _ref.isFolder, isFolder = _ref$isFolder === void 0 ? false : _ref$isFolder; var icon = React.createElement(IconClose, null); var target = null; var resin = {}; var tooltip = intl.formatMessage(messages.uploadsCancelButtonTooltip); if (isFolder && status !== STATUS_PENDING) { return null; } switch (status) { case STATUS_COMPLETE: icon = React.createElement(IconCheck, { color: ICON_CHECK_COLOR }); tooltip = intl.formatMessage(messages.remove); break; case STATUS_ERROR: icon = React.createElement(IconRetry, null); tooltip = intl.formatMessage(messages.retry); target = 'uploadretry'; break; case STATUS_IN_PROGRESS: case STATUS_STAGED: icon = React.createElement(IconInProgress, null); target = 'uploadcancel'; break; case STATUS_PENDING: default: // empty } if (target) { resin = { 'data-resin-target': target }; } return React.createElement("div", { className: "bcu-item-action" }, React.createElement(Tooltip, { position: "top-left", text: tooltip }, React.createElement(PlainButton, _extends({ onClick: onClick, type: "button", isDisabled: status === STATUS_STAGED }, resin), icon))); }; export { ItemAction as ItemActionForTesting }; export default injectIntl(ItemAction);