UNPKG

@hrobarikt/box-ui-elements

Version:
107 lines (99 loc) 5.12 kB
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import classNames from 'classnames'; import getProp from 'lodash/get'; import noop from 'lodash/noop'; import * as React from 'react'; import ActivityError from '../common/activity-error'; import ActivityMessage from '../common/activity-message'; import ActivityTimestamp from '../common/activity-timestamp'; import AnnotationActivityLink from './AnnotationActivityLink'; import AnnotationActivityMenu from './AnnotationActivityMenu'; import Avatar from '../Avatar'; import Media from '../../../../components/media'; import messages from './messages'; import UserLink from '../common/user-link'; import { ACTIVITY_TARGETS } from '../../../common/interactionTargets'; import { PLACEHOLDER_USER } from '../../../../constants'; import './AnnotationActivity.scss'; var AnnotationActivity = function AnnotationActivity(_ref) { var item = _ref.item, getAvatarUrl = _ref.getAvatarUrl, getUserProfileUrl = _ref.getUserProfileUrl, isCurrentVersion = _ref.isCurrentVersion, _ref$onDelete = _ref.onDelete, onDelete = _ref$onDelete === void 0 ? noop : _ref$onDelete, _ref$onSelect = _ref.onSelect, onSelect = _ref$onSelect === void 0 ? noop : _ref$onSelect; var created_at = item.created_at, created_by = item.created_by, description = item.description, error = item.error, file_version = item.file_version, id = item.id, isPending = item.isPending, _item$permissions = item.permissions, permissions = _item$permissions === void 0 ? {} : _item$permissions, target = item.target; var handleDeleteConfirm = function handleDeleteConfirm() { onDelete({ id: id, permissions: permissions }); }; var handleOnSelect = function handleOnSelect() { onSelect(item); }; var createdAtTimestamp = new Date(created_at).getTime(); var createdByUser = created_by || PLACEHOLDER_USER; var canDelete = permissions.can_delete; var isFileVersionUnavailable = file_version === null; var isMenuVisible = canDelete && !isPending; var message = description && description.message || ''; var linkMessage = isCurrentVersion ? messages.annotationActivityPageItem : messages.annotationActivityVersionLink; var linkValue = isCurrentVersion ? target.location.value : getProp(file_version, 'version_number'); var activityLinkMessage = isFileVersionUnavailable ? messages.annotationActivityVersionUnavailable : _objectSpread({}, linkMessage, { values: { number: linkValue } }); return React.createElement("div", { className: "bcs-AnnotationActivity", "data-resin-feature": "annotations" }, React.createElement(Media, { className: classNames('bcs-AnnotationActivity-media', { 'bcs-is-pending': isPending || error }) }, React.createElement(Media.Figure, null, React.createElement(Avatar, { getAvatarUrl: getAvatarUrl, user: createdByUser })), React.createElement(Media.Body, null, isMenuVisible && React.createElement(AnnotationActivityMenu, { canDelete: canDelete, id: id, onDeleteConfirm: handleDeleteConfirm }), React.createElement("div", { className: "bcs-AnnotationActivity-headline" }, React.createElement(UserLink, { "data-resin-target": ACTIVITY_TARGETS.PROFILE, getUserProfileUrl: getUserProfileUrl, id: createdByUser.id, name: createdByUser.name })), React.createElement("div", null, React.createElement(ActivityTimestamp, { date: createdAtTimestamp })), React.createElement(ActivityMessage, { id: id, tagged_message: message, getUserProfileUrl: getUserProfileUrl }), React.createElement(AnnotationActivityLink, { "data-resin-iscurrent": isCurrentVersion, "data-resin-itemid": id, "data-resin-target": "annotationLink", id: id, isDisabled: isFileVersionUnavailable, message: activityLinkMessage, onClick: handleOnSelect }))), error ? React.createElement(ActivityError, error) : null); }; export default AnnotationActivity; //# sourceMappingURL=AnnotationActivity.js.map