metadata-based-explorer1
Version:
Box UI Elements
99 lines (92 loc) • 3.86 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); }
import React from 'react';
import { FormattedMessage } from 'react-intl';
import { convertToMs } from '../../utils/datetime';
import { DISPOSITION_ACTION_REMOVE_RETENTION_ONLY, DISPOSITION_ACTION_DELETE_ITEMS } from './constants';
import { VersionPropType } from './prop-types';
import messages from './messages';
var FileVersionInfo = function FileVersionInfo(_ref) {
var version = _ref.version;
var message = {};
var values = {};
if (version.deleted > 0) {
if (version.deletedPermanentlyBy > 0) {
// Deleted and will be permanently deleted at some time in the future
message = messages.deletedPermanentlyByInfo;
values = {
deleted: convertToMs(version.deleted),
deletedPermanentlyBy: convertToMs(version.deletedPermanentlyBy),
deleterUserName: version.deleterUserName
};
} else {
// Deleted
message = messages.deletedByInfo;
values = {
deleted: convertToMs(version.deleted),
deleterUserName: version.deleterUserName
};
}
} else if (version.restored > 0) {
// Restored from deleted status
message = messages.restoredByInfo;
values = {
restored: convertToMs(version.restored),
restorerUserName: version.restorerUserName
};
} else if (version.isCurrent && version.currentFromFileVersionID) {
if (version.currentFromVersionNumber) {
// Restored from a specific version
message = messages.restoredFromVersionInfo;
values = {
restored: convertToMs(version.updated),
restorerUserName: version.currentFromUserName,
versionNumber: version.currentFromVersionNumber
};
} else {
// Restored from an unknown version (maybe old version was deleted)
message = messages.restoredFromPreviousVersionInfo;
values = {
restored: convertToMs(version.updated),
restorerUserName: version.currentFromUserName
};
}
} else {
// Both current version and other versions just use the default "Uploaded" info
message = messages.uploadedInfo;
values = {
// Use `updated` time instead of `created` timestamp for the current version of the file
uploaded: convertToMs(version.isCurrent ? version.updated : version.created),
uploaderUserName: version.uploaderUserName
};
}
var retentionMessage = {};
var retentionValues = {};
if (version.isRetained) {
if (version.isIndefinitelyRetained) {
retentionMessage = messages.retainedIndefinitely;
} else if (version.dispositionAction === DISPOSITION_ACTION_REMOVE_RETENTION_ONLY) {
retentionMessage = messages.retainedUntil;
retentionValues = {
dispositionDate: convertToMs(version.dispositionDate)
};
} else if (version.dispositionAction === DISPOSITION_ACTION_DELETE_ITEMS) {
retentionMessage = messages.retainedAndDeletedOn;
retentionValues = {
dispositionDate: convertToMs(version.dispositionDate)
};
}
}
return React.createElement("div", {
className: "file-version-info"
}, React.createElement("p", null, React.createElement(FormattedMessage, _extends({}, message, {
values: values
}))), version.isRetained && retentionMessage && retentionMessage.id && React.createElement("p", {
className: "file-version-retention-info"
}, React.createElement(FormattedMessage, _extends({}, retentionMessage, {
values: retentionValues
}))));
};
FileVersionInfo.propTypes = {
version: VersionPropType.isRequired
};
export default FileVersionInfo;