metadata-based-explorer1
Version:
Box UI Elements
79 lines (68 loc) • 2.49 kB
JavaScript
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);