metadata-based-explorer1
Version:
Box UI Elements
77 lines (70 loc) • 2.88 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 Collapsed Version component
*/
import * as React from 'react';
import { FormattedMessage, injectIntl } from 'react-intl';
import IconInfoInverted from '../../../../icons/general/IconInfoInverted';
import PlainButton from '../../../../components/plain-button';
import messages from '../../../common/messages';
import selectors from '../../../common/selectors/version';
import { ACTIVITY_TARGETS } from '../../../common/interactionTargets';
import './Version.scss';
function getMessageForAction(action, collaborators, version_start, version_end) {
// We only support collapsing for multiple upload versions
if (action !== 'upload') {
return null;
}
var collaboratorIDs = Object.keys(collaborators);
var numberOfCollaborators = collaboratorIDs.length;
var versionRange = React.createElement("span", {
className: "bcs-Version-range"
}, version_start, " - ", version_end);
if (numberOfCollaborators === 1) {
var collaborator = collaborators[collaboratorIDs[0]];
return React.createElement(FormattedMessage, _extends({}, messages.versionUploadCollapsed, {
values: {
name: React.createElement("strong", null, collaborator.name),
versions: versionRange
}
}));
}
return React.createElement(FormattedMessage, _extends({}, messages.versionMultipleUsersUploaded, {
values: {
numberOfCollaborators: numberOfCollaborators,
versions: versionRange
}
}));
}
var CollapsedVersion = function CollapsedVersion(props) {
var action = selectors.getVersionAction(props);
var collaborators = props.collaborators,
intl = props.intl,
onInfo = props.onInfo,
versions = props.versions,
version_start = props.version_start,
version_end = props.version_end;
return React.createElement("div", {
className: "bcs-Version"
}, React.createElement("span", {
className: "bcs-Version-message"
}, getMessageForAction(action, collaborators, version_start, version_end)), onInfo ? React.createElement("span", {
className: "bcs-Version-actions"
}, React.createElement(PlainButton, {
"aria-label": intl.formatMessage(messages.getVersionInfo),
className: "bcs-Version-info",
"data-resin-target": ACTIVITY_TARGETS.VERSION_CARD,
onClick: function onClick() {
onInfo({
versions: versions
});
},
type: "button"
}, React.createElement(IconInfoInverted, {
height: 16,
width: 16
}))) : null);
};
export { CollapsedVersion as CollapsedVersionBase };
export default injectIntl(CollapsedVersion);