UNPKG

cspace-ui

Version:
85 lines (84 loc) 3.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = LoginForm; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _immutable = _interopRequireDefault(require("immutable")); var _reactIntl = require("react-intl"); var _reactRouterDom = require("react-router-dom"); var _errorCodes = require("../../constants/errorCodes"); var _LoginForm = _interopRequireDefault(require("../../../styles/cspace-ui/LoginForm.css")); var _AuthStatusContainer = _interopRequireDefault(require("../../containers/login/AuthStatusContainer")); var _LoginLink = _interopRequireDefault(require("./LoginLink")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const messages = (0, _reactIntl.defineMessages)({ prompt: { "id": "loginForm.prompt", "defaultMessage": "Please sign in to continue." }, expiredPrompt: { "id": "loginForm.expiredPrompt", "defaultMessage": "Your sign in has expired. Please renew it to continue." }, loginWindowOpen: { "id": "loginForm.loginWindowOpen", "defaultMessage": "Sign in is in progress in another browser window." }, loginWindowOpenFailed: { "id": "loginForm.loginWindowOpenFailed", "defaultMessage": "The sign in window could not be opened. Please allow pop-ups for this site." }, logout: { "id": "loginForm.logout", "defaultMessage": "Sign out to change to another user." } }); const propTypes = { isLoginExpired: _propTypes.default.bool, isLoginPending: _propTypes.default.bool, isLoginSuccess: _propTypes.default.bool, isLoginWindowOpen: _propTypes.default.bool, isLoginWindowOpenFailed: _propTypes.default.bool, loginError: _propTypes.default.instanceOf(_immutable.default.Map), openLoginWindow: _propTypes.default.func, showPrompt: _propTypes.default.bool }; const defaultProps = { isLoginExpired: false, isLoginPending: false, isLoginSuccess: false, isLoginWindowOpen: false, isLoginWindowOpenFailed: false, loginError: null, openLoginWindow: null, showPrompt: false }; function LoginForm(props) { const { isLoginExpired, isLoginPending, isLoginSuccess, isLoginWindowOpen, isLoginWindowOpenFailed, loginError, openLoginWindow, showPrompt } = props; let prompt = null; if (!isLoginSuccess && !isLoginPending && !loginError && showPrompt) { const messageKey = isLoginExpired ? 'expiredPrompt' : 'prompt'; prompt = /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, messages[messageKey])); } const errorCode = loginError && loginError.get('code'); return /*#__PURE__*/_react.default.createElement("div", { className: _LoginForm.default.common }, isLoginWindowOpen && /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, messages.loginWindowOpen), !isLoginWindowOpen && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AuthStatusContainer.default, null), prompt, !isLoginSuccess && !isLoginPending && /*#__PURE__*/_react.default.createElement("p", null, errorCode === _errorCodes.ERR_WRONG_TENANT ? /*#__PURE__*/_react.default.createElement(_reactRouterDom.Link, { to: "/logout" }, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, messages.logout)) : /*#__PURE__*/_react.default.createElement(_LoginLink.default, { openLoginWindow: openLoginWindow }))), isLoginWindowOpenFailed && /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, messages.loginWindowOpenFailed)); } LoginForm.propTypes = propTypes; LoginForm.defaultProps = defaultProps;