UNPKG

metadata-based-explorer1

Version:
91 lines (88 loc) 3.69 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); } import PropTypes from 'prop-types'; import React from 'react'; import { FormattedMessage, injectIntl, intlShape } from 'react-intl'; import classNames from 'classnames'; import Badge from '../../components/badge'; import FileIcon from '../../icons/file-icon'; import { VersionPropType } from './prop-types'; import FileVersionActions from './FileVersionActions'; import FileVersionInfo from './FileVersionInfo'; import messages from './messages'; var FileVersionListItem = function FileVersionListItem(_ref) { var canDelete = _ref.canDelete, canUpload = _ref.canUpload, intl = _ref.intl, _ref$isOverVersionLim = _ref.isOverVersionLimit, isOverVersionLimit = _ref$isOverVersionLim === void 0 ? false : _ref$isOverVersionLim, _ref$isProcessing = _ref.isProcessing, isProcessing = _ref$isProcessing === void 0 ? false : _ref$isProcessing, onDelete = _ref.onDelete, onDownload = _ref.onDownload, onMakeCurrent = _ref.onMakeCurrent, onRestore = _ref.onRestore, style = _ref.style, version = _ref.version, versionLimit = _ref.versionLimit; var classes = classNames('file-version-row', { 'is-deleted': version.deleted > 0 }); return React.createElement("div", { className: classes, style: style }, React.createElement("div", { className: "file-version-icon" }, React.createElement(FileIcon, { extension: version.extension })), React.createElement("div", { className: "file-version-content" }, React.createElement("div", { className: "file-version-title" }, React.createElement(Badge, { "aria-label": intl.formatMessage(messages.versionNumberLabel, { versionNumber: version.versionNumber }), className: "file-version-badge" }, React.createElement(FormattedMessage, _extends({}, messages.versionNumberBadge, { values: { versionNumber: version.versionNumber } }))), React.createElement("span", { className: "file-version-name" }, version.itemName), version.isCurrent && React.createElement(Badge, { "aria-label": intl.formatMessage(messages.currentVersionLabel), type: "highlight" }, React.createElement(FormattedMessage, messages.current))), React.createElement(FileVersionInfo, { version: version }), isOverVersionLimit ? React.createElement("span", { className: "file-version-limit-exceeded-message" }, React.createElement(FormattedMessage, _extends({}, messages.versionLimitExceeded, { values: { versionLimit: versionLimit } }))) : React.createElement(FileVersionActions, { canDelete: canDelete, canUpload: canUpload, isProcessing: isProcessing, onDelete: onDelete, onDownload: onDownload, onMakeCurrent: onMakeCurrent, onRestore: onRestore, version: version }))); }; FileVersionListItem.propTypes = { intl: intlShape.isRequired, isOverVersionLimit: PropTypes.bool, // This value cannot be computed within this component isProcessing: PropTypes.bool, onDelete: PropTypes.func.isRequired, onDownload: PropTypes.func.isRequired, onMakeCurrent: PropTypes.func.isRequired, onRestore: PropTypes.func.isRequired, style: PropTypes.any, version: VersionPropType.isRequired, versionLimit: PropTypes.number.isRequired }; export { FileVersionListItem as FileVersionListItemBase }; export default injectIntl(FileVersionListItem);