UNPKG

@coko/client

Version:

Client side common code for coko apps

127 lines (126 loc) 5.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _icons = require("@ant-design/icons"); var _toolkit = require("../../toolkit"); var _common = require("../common"); var _templateObject, _templateObject2, _templateObject3, _templateObject4; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var StyledInviteStatus = (0, _styledComponents["default"])(_common.InviteStatus)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n font-size: 12px;\n margin: 0 ", ";\n"])), (0, _toolkit.grid)(1)); var InviteStatusWrapper = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: inline-block;\n"]))); var InviteActionWrapper = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([""]))); var RemoveInviteWrapper = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n &:hover {\n cursor: pointer;\n }\n"]))); var InviteRowProp = function InviteRowProp(props) { var canInvite = props.canInvite, className = props.className, data = props.data, onClickInvite = props.onClickInvite, onClickRemove = props.onClickRemove, onClickRevokeInvitation = props.onClickRevokeInvitation, type = props.type; var id = data.id, invited = data.invited, acceptedInvitation = data.acceptedInvitation, rejectedInvitation = data.rejectedInvitation, invitationRevoked = data.invitationRevoked, reviewSubmitted = data.reviewSubmitted; var reviewPending = invited && acceptedInvitation && !reviewSubmitted; var submitted = invited && acceptedInvitation && reviewSubmitted; var rejected = invited && rejectedInvitation; var revoked = invited && invitationRevoked; var responsePending = invited && !invitationRevoked && !acceptedInvitation && !rejectedInvitation; var notInvited = !invited && !invitationRevoked; var makeStatusText = function makeStatusText() { if (reviewPending) return 'accepted invitation - pending review'; if (submitted) return 'review submitted'; if (rejected) return 'rejected invitation'; if (revoked) return 'invitation revoked'; if (responsePending) return 'invited'; if (notInvited) return 'not invited'; return null; }; var makeStatus = function makeStatus() { if (reviewPending) return 'success'; if (submitted) return 'primary'; if (rejected) return 'error'; if (revoked) return 'error'; if (responsePending) return 'success'; if (notInvited) return null; return null; }; var handleRemove = function handleRemove() { onClickRemove(id); }; if (type === 'status') { return /*#__PURE__*/_react["default"].createElement(InviteStatusWrapper, { className: className }, /*#__PURE__*/_react["default"].createElement(StyledInviteStatus, { reverseColors: true, status: makeStatus() }, makeStatusText())); } if (type === 'action') { return /*#__PURE__*/_react["default"].createElement(InviteActionWrapper, { className: className }, notInvited && /*#__PURE__*/_react["default"].createElement(_common.Button, { disabled: !canInvite, onClick: function onClick() { return onClickInvite(id); }, type: "primary" }, "Invite"), revoked && /*#__PURE__*/_react["default"].createElement(_common.Button, { disabled: !canInvite, onClick: function onClick() { return onClickInvite(id); }, type: "primary" }, "Reinvite"), responsePending && /*#__PURE__*/_react["default"].createElement(_common.Button, { onClick: function onClick() { return onClickRevokeInvitation(id); }, type: "primary" }, "Revoke invite")); } if (type === 'remove' && notInvited) { return /*#__PURE__*/_react["default"].createElement(RemoveInviteWrapper, { className: className, onClick: handleRemove }, /*#__PURE__*/_react["default"].createElement(_icons.CloseOutlined, null)); } return null; }; InviteRowProp.propTypes = { /** Whether more reviewers can be invited */ canInvite: _propTypes["default"].bool, /** Current row's invite status fields */ data: _propTypes["default"].shape({ id: _propTypes["default"].string.isRequired, invited: _propTypes["default"].bool, acceptedInvitation: _propTypes["default"].bool, rejectedInvitation: _propTypes["default"].bool, invitationRevoked: _propTypes["default"].bool, reviewSubmitted: _propTypes["default"].bool }).isRequired, /** Function to run when "invite" is clicked on a row from the pool */ onClickInvite: _propTypes["default"].func, /** Function to run when the "X" is clicked on a row from the pool */ onClickRemove: _propTypes["default"].func, /** Function to run when "Revoke invitiation" is clicked on a row from the pool */ onClickRevokeInvitation: _propTypes["default"].func, /** Type of invite prop being rendered */ type: _propTypes["default"].string.isRequired }; InviteRowProp.defaultProps = { canInvite: false, onClickInvite: function onClickInvite() {}, onClickRemove: function onClickRemove() {}, onClickRevokeInvitation: function onClickRevokeInvitation() {} }; var _default = InviteRowProp; exports["default"] = _default;