cspace-ui
Version:
CollectionSpace user interface for browsers
61 lines (60 loc) • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = LoginLink;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactIntl = require("react-intl");
var _reactRouterDom = require("react-router-dom");
var _LoginLink = _interopRequireDefault(require("../../../styles/cspace-ui/LoginLink.css"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const propTypes = {
openLoginWindow: _propTypes.default.func
};
const defaultProps = {
openLoginWindow: null
};
const contextTypes = {
config: _propTypes.default.shape({
recordTypes: _propTypes.default.object
})
};
const messages = (0, _reactIntl.defineMessages)({
label: {
"id": "loginLink.label",
"defaultMessage": "Sign in"
},
openLabel: {
"id": "loginLink.openLabel",
"defaultMessage": "Open sign in window"
}
});
function LoginLink(props, context) {
const {
openLoginWindow
} = props;
const authorizePath = '/authorize';
let handleClick;
if (openLoginWindow) {
const {
config
} = context;
const {
basename
} = config;
handleClick = event => {
event.preventDefault();
openLoginWindow(`${basename}${authorizePath}`);
};
}
const message = openLoginWindow ? messages.openLabel : messages.label;
return /*#__PURE__*/_react.default.createElement(_reactRouterDom.Link, {
className: _LoginLink.default.common,
to: authorizePath,
onClick: handleClick
}, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, message));
}
LoginLink.propTypes = propTypes;
LoginLink.defaultProps = defaultProps;
LoginLink.contextTypes = contextTypes;