UNPKG

chayns-components

Version:

A set of beautiful React components for developing chayns® applications.

136 lines (133 loc) 5.76 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _lodash = _interopRequireDefault(require("lodash.isequal")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _image = require("../../utils/image"); var _textstring = require("../../utils/textstring"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /* eslint-disable jsx-a11y/click-events-have-key-events,react/forbid-prop-types */ class Receiver extends _react.Component { shouldComponentUpdate(nextProps) { const { chosenReceivers, includedUsers, showIdInPopup, locationId, personId, groupId, userId, siteId, imgUrl, name } = this.props; return !(0, _lodash.default)(chosenReceivers, nextProps.chosenReceivers) || !(0, _lodash.default)(includedUsers, nextProps.includedUsers) || showIdInPopup !== nextProps.showIdInPopup || locationId !== nextProps.locationId || personId !== nextProps.personId || groupId !== nextProps.groupId || siteId !== nextProps.siteId || userId !== nextProps.userId || imgUrl !== nextProps.imgUrl || name !== nextProps.name; } chooseReceiver(name, locationId, userId, groupId, personId, siteId) { const { updateReceiverSearchString, updateChosenReceivers, chosenReceivers, includedUsers } = this.props; let newReceiver = {}; let receivers = []; if (locationId) { newReceiver = { name, locationId, siteId }; receivers = chosenReceivers.filter(r => r.locationId !== locationId); } else if (userId) { newReceiver = { name, userId, personId }; receivers = chosenReceivers.filter(r => r.userId !== userId); } else { newReceiver = { name, groupId, includedUsers }; receivers = chosenReceivers.filter(r => r.groupId !== groupId); } receivers.push(newReceiver); const locationReceivers = receivers.filter(r => r.locationId !== undefined && r.locationId !== null); if (locationReceivers.length > 1) { receivers = receivers.filter(r => r.locationId === undefined || r.locationId === null || r.locationId === locationReceivers[locationReceivers.length - 1].locationId); chayns.dialog.alert(null, (0, _textstring.getTextstring)('txt_chayns_interCom2_newThread_toManyLocations')); } updateChosenReceivers(receivers); updateReceiverSearchString(''); } render() { const { showIdInPopup, includedUsers, locationId, personId, groupId, userId, siteId, imgUrl, name } = this.props; let memberId = null; if (showIdInPopup && siteId !== null) { memberId = siteId; } else if (showIdInPopup && personId !== null) { memberId = personId; } const memberName = memberId !== null ? `${name} (${memberId})` : name; return /*#__PURE__*/_react.default.createElement("div", { onClick: this.chooseReceiver.bind(this, name, locationId, userId, groupId, personId, siteId), className: "receiver-wrapper popup-item" }, /*#__PURE__*/_react.default.createElement("div", { className: "receiver popup-item" }, /*#__PURE__*/_react.default.createElement("div", { className: "pic popup-item" }, groupId !== null ? (0, _image.getGroupImage)(groupId, includedUsers.map(id => ({ userId: id }))) : /*#__PURE__*/_react.default.createElement("img", { className: "popup-item", src: imgUrl, alt: "", onError: _image.handleImageError })), /*#__PURE__*/_react.default.createElement("div", { className: "receiver-name popup-item notranslate" }, memberName))); } } exports.default = Receiver; Receiver.propTypes = { updateReceiverSearchString: _propTypes.default.func.isRequired, updateChosenReceivers: _propTypes.default.func.isRequired, chosenReceivers: _propTypes.default.array.isRequired, name: _propTypes.default.string.isRequired, includedUsers: _propTypes.default.array, showIdInPopup: _propTypes.default.bool, locationId: _propTypes.default.number, personId: _propTypes.default.string, groupId: _propTypes.default.number, userId: _propTypes.default.number, imgUrl: _propTypes.default.string, siteId: _propTypes.default.string }; Receiver.defaultProps = { showIdInPopup: false, includedUsers: [], locationId: null, personId: null, groupId: null, userId: null, siteId: null, imgUrl: '' }; Receiver.displayName = 'Receiver'; //# sourceMappingURL=Receiver.js.map