UNPKG

cspace-ui

Version:
108 lines (107 loc) 3.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = AuthStatus; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _immutable = _interopRequireDefault(require("immutable")); var _reactIntl = require("react-intl"); var _Notification = _interopRequireDefault(require("../notification/Notification")); var _AuthStatus = _interopRequireDefault(require("../../../styles/cspace-ui/AuthStatus.css")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); } const propTypes = { isPending: _propTypes.default.bool, isSuccess: _propTypes.default.bool, error: _propTypes.default.instanceOf(_immutable.default.Map), username: _propTypes.default.string }; const messages = (0, _reactIntl.defineMessages)({ pending: { "id": "authStatus.pending", "defaultMessage": "Finishing sign in..." }, success: { "id": "authStatus.success", "defaultMessage": "Signed in as {username}." }, error: { "id": "authStatus.error", "defaultMessage": "Sign in failed." }, ERR_AUTH_CODE_REQUEST_NOT_FOUND: { "id": "authStatus.ERR_AUTH_CODE_REQUEST_NOT_FOUND", "defaultMessage": "Sign in failed. The authorization code does not belong to an active sign in request." }, ERR_BAD_REQUEST: { "id": "authStatus.ERR_BAD_REQUEST", "defaultMessage": "Sign in failed. The CollectionSpace server received a bad request." }, ERR_ACCOUNT_INACTIVE: { "id": "authStatus.ERR_ACCOUNT_INACTIVE", "defaultMessage": "Sign in failed. The account is inactive." }, ERR_ACCOUNT_INVALID: { "id": "authStatus.ERR_ACCOUNT_INVALID", "defaultMessage": "Sign in failed. The account is in an invalid state." }, ERR_ACCOUNT_NOT_FOUND: { "id": "authStatus.ERR_ACCOUNT_NOT_FOUND", "defaultMessage": "Sign in failed. Account not found." }, ERR_INVALID_CREDENTIALS: { "id": "authStatus.ERR_INVALID_CREDENTIALS", "defaultMessage": "Sign in failed. Incorrect username/password." }, ERR_NETWORK: { "id": "authStatus.ERR_NETWORK", "defaultMessage": "Sign in failed. Unable to reach the CollectionSpace server." }, ERR_WRONG_TENANT: { "id": "authStatus.ERR_WRONG_TENANT", "defaultMessage": "Sign in failed. The user is not registered to this CollectionSpace tenant." } }); const renderStatus = (username, isSuccess, isPending) => { let messageKey; if (isPending) { messageKey = 'pending'; } else if (isSuccess) { messageKey = 'success'; } if (!messageKey) { return null; } return /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, _extends({}, messages[messageKey], { values: { username } }))); }; const renderError = (error, isPending) => { if (isPending || !error) { return undefined; } const messageKey = error.get('code') || 'error'; return /*#__PURE__*/_react.default.createElement(_Notification.default, { id: "authStatus.error", items: [{ message: messages[messageKey] || messages.error }], showCloseButton: false, status: "error" }); }; function AuthStatus(props) { const { error, isPending, isSuccess, username } = props; return /*#__PURE__*/_react.default.createElement("div", { className: _AuthStatus.default.common }, renderStatus(username, isSuccess, isPending), renderError(error, isPending)); } AuthStatus.propTypes = propTypes;