@krowdy/kds-auth
Version:
React components that implement Google's Material Design.
121 lines (98 loc) • 4.68 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
var _reactMicrosoftLogin = _interopRequireDefault(require("react-microsoft-login"));
var _kdsCore = require("@krowdy/kds-core");
var _constants = require("./constants");
var _utils = require("../utils");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(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; }
var useStyles = (0, _kdsCore.makeStyles)(function (_ref) {
var spacing = _ref.spacing,
shape = _ref.shape,
palette = _ref.palette;
return {
btnSocialMicrosoft: {
'& img': {
marginLeft: spacing(.75),
marginRight: spacing(2)
},
'& span': {
fontSize: 14,
margin: 'auto'
},
'&:hover': {
background: '#1b1b1b'
},
alignItems: 'center',
background: palette.common.black,
border: 0,
borderRadius: shape.borderRadius,
color: palette.common.white,
cursor: 'pointer',
display: 'flex',
height: 40,
justifyContent: 'center',
marginTop: spacing(2),
position: 'relative',
width: '100%'
}
};
});
var _ref2 = /*#__PURE__*/_react["default"].createElement(_kdsCore.Typography, {
variant: "body2"
}, "Ingresa con Microsoft");
var MicrosoftButton = function MicrosoftButton() {
var classes = useStyles();
var _useAuth = (0, _utils.useAuth)(),
_useAuth$microsoftCre = _useAuth.microsoftCredentials;
_useAuth$microsoftCre = _useAuth$microsoftCre === void 0 ? {} : _useAuth$microsoftCre;
var clientId = _useAuth$microsoftCre.clientId,
redirectUri = _useAuth$microsoftCre.redirectUri,
validateSocialNetwork = _useAuth.validateSocialNetwork,
setLoadingSignIn = _useAuth.setLoadingSignIn;
var _useState = (0, _react.useState)(false),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
verifying = _useState2[0],
setVerifying = _useState2[1];
var handleResponseMicrosoft = (0, _react.useCallback)(function (err, response, msal) {
if (err) {
setVerifying(false);
setLoadingSignIn(false); // eslint-disable-next-line no-console
console.log(err);
return;
}
if (response && msal && !verifying) {
var accessToken = response.accessToken;
setVerifying(true);
validateSocialNetwork('microsoft', {
method: _constants.METHODS_SESSION['microsoft'],
tokenId: accessToken
});
}
}, [validateSocialNetwork, verifying, setLoadingSignIn]);
var _handleRequest = (0, _react.useCallback)(function () {
setLoadingSignIn(true); // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return clientId ? /*#__PURE__*/_react["default"].createElement("div", {
onClick: _handleRequest
}, /*#__PURE__*/_react["default"].createElement(_reactMicrosoftLogin["default"], {
authCallback: handleResponseMicrosoft,
clientId: clientId // forceRedirectStrategy
,
redirectUri: redirectUri
}, /*#__PURE__*/_react["default"].createElement("button", {
className: classes.btnSocialMicrosoft
}, /*#__PURE__*/_react["default"].createElement("img", {
alt: "microsoftSocial",
src: _constants.IMAGES_SOCIAL.microsoft
}), _ref2))) : null;
};
var _default = MicrosoftButton;
exports["default"] = _default;