@anas_hameed/edly-saas-widget 0.2.0 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/EdlyLogistrationInfo/messages.js +4 -9
- package/dist/EdlyLogistrationInfo/messages.js.map +1 -1
- package/dist/EmailCheckWidget/EmailCheckWidget.js +20 -5
- package/dist/EmailCheckWidget/EmailCheckWidget.js.map +1 -1
- package/dist/EmailCheckWidget/data/constants.js +2 -2
- package/dist/EmailCheckWidget/data/constants.js.map +1 -1
- package/dist/EmailCheckWidget/data/sagas.js +2 -2
- package/dist/EmailCheckWidget/data/sagas.js.map +1 -1
- package/dist/EmailCheckWidget/messages.js +1 -1
- package/dist/EmailCheckWidget/messages.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,27 +8,22 @@ var _i18n = require("@edx/frontend-platform/i18n");
|
|
|
8
8
|
const messages = (0, _i18n.defineMessages)({
|
|
9
9
|
'edly.email.registered.different.org': {
|
|
10
10
|
id: 'edly.email.registered.different.org',
|
|
11
|
-
defaultMessage: 'This email is already registered
|
|
11
|
+
defaultMessage: 'This email is already registered on another organization. Please register with a different email to continue.',
|
|
12
12
|
description: 'Alert message when user email is registered with a different organization'
|
|
13
13
|
},
|
|
14
14
|
'edly.cross.tenant.login.enabled': {
|
|
15
15
|
id: 'edly.cross.tenant.login.enabled',
|
|
16
|
-
defaultMessage: 'You have already registered with this email
|
|
16
|
+
defaultMessage: 'You have already registered on {registeredSite} with this email address. Please enter your password to continue.',
|
|
17
17
|
description: 'Alert message when user can login across tenants in same organization'
|
|
18
18
|
},
|
|
19
19
|
'edly.registration.required.for.tenant': {
|
|
20
20
|
id: 'edly.registration.required.for.tenant',
|
|
21
|
-
defaultMessage: 'You have already registered with this email on {registeredSite}
|
|
21
|
+
defaultMessage: 'You have already registered with this email on {registeredSite} with this email address. Please enter your password to complete registration on',
|
|
22
22
|
description: 'Alert message when user needs to register for specific tenant'
|
|
23
23
|
},
|
|
24
|
-
'edly.cross.org.sso.attempted': {
|
|
25
|
-
id: 'edly.cross.org.sso.attempted',
|
|
26
|
-
defaultMessage: 'Single sign-on is not available for this email because it is already registered on another organization.',
|
|
27
|
-
description: 'Alert message when user tries to SSO with an email that is already registered on another organization'
|
|
28
|
-
},
|
|
29
24
|
'edly.password.reset.required': {
|
|
30
25
|
id: 'edly.password.reset.required',
|
|
31
|
-
defaultMessage: '
|
|
26
|
+
defaultMessage: 'Looks like your account already exists on {registeredSite}. We have sent you an email to set up your password. Please set a new password and sign in to access the site',
|
|
32
27
|
description: 'Alert message when SSO user tries to login with password on different tenant'
|
|
33
28
|
}
|
|
34
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","id","defaultMessage","description","_default","exports","default"],"sources":["../../src/EdlyLogistrationInfo/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n 'edly.email.registered.different.org': {\n id: 'edly.email.registered.different.org',\n defaultMessage: 'This email is already registered
|
|
1
|
+
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","id","defaultMessage","description","_default","exports","default"],"sources":["../../src/EdlyLogistrationInfo/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n 'edly.email.registered.different.org': {\n id: 'edly.email.registered.different.org',\n defaultMessage: 'This email is already registered on another organization. Please register with a different email to continue.',\n description: 'Alert message when user email is registered with a different organization',\n },\n 'edly.cross.tenant.login.enabled': {\n id: 'edly.cross.tenant.login.enabled',\n defaultMessage: 'You have already registered on {registeredSite} with this email address. Please enter your password to continue.',\n description: 'Alert message when user can login across tenants in same organization',\n },\n 'edly.registration.required.for.tenant': {\n id: 'edly.registration.required.for.tenant',\n defaultMessage: 'You have already registered with this email on {registeredSite} with this email address. Please enter your password to complete registration on',\n description: 'Alert message when user needs to register for specific tenant',\n },\n 'edly.password.reset.required': {\n id: 'edly.password.reset.required',\n defaultMessage: 'Looks like your account already exists on {registeredSite}. We have sent you an email to set up your password. Please set a new password and sign in to access the site',\n description: 'Alert message when SSO user tries to login with password on different tenant',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9B,qCAAqC,EAAE;IACrCC,EAAE,EAAE,qCAAqC;IACzCC,cAAc,EAAE,+GAA+G;IAC/HC,WAAW,EAAE;EACf,CAAC;EACD,iCAAiC,EAAE;IACjCF,EAAE,EAAE,iCAAiC;IACrCC,cAAc,EAAE,kHAAkH;IAClIC,WAAW,EAAE;EACf,CAAC;EACD,uCAAuC,EAAE;IACvCF,EAAE,EAAE,uCAAuC;IAC3CC,cAAc,EAAE,iJAAiJ;IACjKC,WAAW,EAAE;EACf,CAAC;EACD,8BAA8B,EAAE;IAC9BF,EAAE,EAAE,8BAA8B;IAClCC,cAAc,EAAE,yKAAyK;IACzLC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYP,QAAQ","ignoreList":[]}
|
|
@@ -19,9 +19,12 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
19
19
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
20
20
|
const EmailCheckWidget = ({
|
|
21
21
|
onEmailCheckComplete,
|
|
22
|
+
activationMsgType,
|
|
22
23
|
BaseContainer,
|
|
23
24
|
FormGroup,
|
|
24
|
-
VALID_EMAIL_REGEX
|
|
25
|
+
VALID_EMAIL_REGEX,
|
|
26
|
+
AccountActivationMessage,
|
|
27
|
+
ResetPasswordSuccess
|
|
25
28
|
}) => {
|
|
26
29
|
const {
|
|
27
30
|
formatMessage
|
|
@@ -30,12 +33,13 @@ const EmailCheckWidget = ({
|
|
|
30
33
|
const [email, setEmail] = (0, _react.useState)('');
|
|
31
34
|
const [emailError, setEmailError] = (0, _react.useState)('');
|
|
32
35
|
const hasCompletedRef = (0, _react.useRef)(false);
|
|
33
|
-
const
|
|
36
|
+
const siteAccessed = (0, _cookies.getCookie)(_constants.CROSS_ORG_SITE_COOKIE_NAME);
|
|
34
37
|
const submitState = (0, _reactRedux.useSelector)(state => state.emailCheck?.submitState || 'default');
|
|
35
38
|
const redirectTo = (0, _reactRedux.useSelector)(state => state.emailCheck?.redirectTo);
|
|
36
39
|
const checkedEmail = (0, _reactRedux.useSelector)(state => state.emailCheck?.email);
|
|
37
40
|
const errorCode = (0, _reactRedux.useSelector)(state => state.emailCheck?.errorCode);
|
|
38
41
|
const errorMessage = (0, _reactRedux.useSelector)(state => state.emailCheck?.errorMessage);
|
|
42
|
+
const showResetPasswordSuccessBanner = (0, _reactRedux.useSelector)(state => state.login?.showResetPasswordSuccessBanner || false);
|
|
39
43
|
(0, _react.useEffect)(() => {
|
|
40
44
|
if (redirectTo && checkedEmail && !hasCompletedRef.current) {
|
|
41
45
|
hasCompletedRef.current = true;
|
|
@@ -81,11 +85,15 @@ const EmailCheckWidget = ({
|
|
|
81
85
|
className: "main-content",
|
|
82
86
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
83
87
|
className: "mw-xs mt-3",
|
|
84
|
-
children: [
|
|
88
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AccountActivationMessage, {
|
|
89
|
+
messageType: activationMsgType
|
|
90
|
+
}), showResetPasswordSuccessBanner && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResetPasswordSuccess, {}), siteAccessed && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Alert, {
|
|
85
91
|
variant: "info",
|
|
86
92
|
icon: _icons.Info,
|
|
87
93
|
className: "mb-5",
|
|
88
|
-
children: formatMessage(_messages.default['cross.org.sso.attempted']
|
|
94
|
+
children: formatMessage(_messages.default['cross.org.sso.attempted'], {
|
|
95
|
+
registeredSite: siteAccessed || 'a partner site'
|
|
96
|
+
})
|
|
89
97
|
}), errorMessage && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Alert, {
|
|
90
98
|
variant: "danger",
|
|
91
99
|
icon: _icons.Info,
|
|
@@ -130,9 +138,16 @@ const EmailCheckWidget = ({
|
|
|
130
138
|
};
|
|
131
139
|
EmailCheckWidget.propTypes = {
|
|
132
140
|
onEmailCheckComplete: _propTypes.default.func.isRequired,
|
|
141
|
+
activationMsgType: _propTypes.default.string,
|
|
133
142
|
BaseContainer: _propTypes.default.elementType.isRequired,
|
|
134
143
|
FormGroup: _propTypes.default.elementType.isRequired,
|
|
135
|
-
VALID_EMAIL_REGEX: _propTypes.default.string.isRequired
|
|
144
|
+
VALID_EMAIL_REGEX: _propTypes.default.string.isRequired,
|
|
145
|
+
AccountActivationMessage: _propTypes.default.elementType.isRequired,
|
|
146
|
+
ResetPasswordSuccess: _propTypes.default.elementType
|
|
147
|
+
};
|
|
148
|
+
EmailCheckWidget.defaultProps = {
|
|
149
|
+
activationMsgType: null,
|
|
150
|
+
ResetPasswordSuccess: null
|
|
136
151
|
};
|
|
137
152
|
var _default = exports.default = EmailCheckWidget;
|
|
138
153
|
//# sourceMappingURL=EmailCheckWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailCheckWidget.js","names":["_react","_interopRequireWildcard","require","_reactRedux","_i18n","_paragon","_icons","_propTypes","_interopRequireDefault","_cookies","_actions","_messages","_constants","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EmailCheckWidget","onEmailCheckComplete","BaseContainer","FormGroup","VALID_EMAIL_REGEX","formatMessage","useIntl","dispatch","useDispatch","email","setEmail","useState","emailError","setEmailError","hasCompletedRef","useRef","crossOrgSSO","getCookie","CROSS_ORG_SSO_ATTEMPT_COOKIE_NAME","submitState","useSelector","state","emailCheck","redirectTo","checkedEmail","errorCode","errorMessage","useEffect","current","validateEmail","emailValue","messages","emailRegex","RegExp","test","handleSubmit","preventDefault","error","checkEmailRequest","handleOnChange","value","target","handleOnFocus","jsx","children","id","className","jsxs","Alert","variant","icon","Info","Form","name","type","autoComplete","handleChange","handleFocus","floatingLabel","StatefulButton","labels","pending","onClick","onMouseDown","propTypes","PropTypes","func","isRequired","elementType","string","_default","exports"],"sources":["../../src/EmailCheckWidget/EmailCheckWidget.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Alert, Form, StatefulButton } from '@openedx/paragon';\nimport { Info } from '@openedx/paragon/icons';\nimport PropTypes from 'prop-types';\n\nimport { getCookie } from '../utils/cookies';\nimport { checkEmailRequest } from './data/actions';\nimport messages from './messages';\nimport { CROSS_ORG_SSO_ATTEMPT_COOKIE_NAME } from './data/constants';\n\nconst EmailCheckWidget = ({\n onEmailCheckComplete,\n BaseContainer,\n FormGroup,\n VALID_EMAIL_REGEX,\n}) => {\n const { formatMessage } = useIntl();\n const dispatch = useDispatch();\n\n const [email, setEmail] = useState('');\n const [emailError, setEmailError] = useState('');\n const hasCompletedRef = useRef(false);\n const crossOrgSSO = getCookie(CROSS_ORG_SSO_ATTEMPT_COOKIE_NAME) === true;\n\n const submitState = useSelector(state => state.emailCheck?.submitState || 'default');\n const redirectTo = useSelector(state => state.emailCheck?.redirectTo);\n const checkedEmail = useSelector(state => state.emailCheck?.email);\n const errorCode = useSelector(state => state.emailCheck?.errorCode);\n const errorMessage = useSelector(state => state.emailCheck?.errorMessage);\n\n useEffect(() => {\n if (redirectTo && checkedEmail && !hasCompletedRef.current) {\n hasCompletedRef.current = true;\n onEmailCheckComplete(redirectTo, checkedEmail, errorCode);\n }\n }, [redirectTo, checkedEmail, errorCode, onEmailCheckComplete]);\n\n const validateEmail = (emailValue) => {\n if (!emailValue) {\n return formatMessage(messages['email.validation.message']);\n }\n\n const emailRegex = new RegExp(VALID_EMAIL_REGEX, 'i');\n if (!emailRegex.test(emailValue)) {\n return formatMessage(messages['email.format.validation.message']);\n }\n\n return '';\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const error = validateEmail(email);\n if (error) {\n setEmailError(error);\n return;\n }\n\n dispatch(checkEmailRequest(email));\n };\n\n const handleOnChange = (e) => {\n const { value } = e.target;\n setEmail(value);\n if (emailError) {\n setEmailError('');\n }\n };\n\n const handleOnFocus = () => {\n if (emailError) {\n setEmailError('');\n }\n };\n\n return (\n <BaseContainer>\n <div id=\"main-content\" className=\"main-content\">\n <div className=\"mw-xs mt-3\">\n {crossOrgSSO && (\n <Alert variant=\"info\" icon={Info} className=\"mb-5\">\n {formatMessage(messages['cross.org.sso.attempted'])}\n </Alert>\n )}\n\n {errorMessage && (\n <Alert variant=\"danger\" icon={Info} className=\"mb-3\">\n {errorMessage}\n </Alert>\n )}\n\n <h3 className=\"mb-3\">{formatMessage(messages['email.check.heading'])}</h3>\n <p className=\"mb-4 text-gray-700\">{formatMessage(messages['email.check.subheading'])}</p>\n <Form id=\"email-check-form\" name=\"email-check-form\">\n <FormGroup\n name=\"email\"\n value={email}\n type=\"email\"\n autoComplete=\"email\"\n handleChange={handleOnChange}\n handleFocus={handleOnFocus}\n errorMessage={emailError}\n floatingLabel=\"Email\"\n />\n <StatefulButton\n id=\"continue-btn\"\n name=\"continue-btn\"\n type=\"submit\"\n variant=\"brand\"\n className=\"login-button-width mt-3\"\n state={submitState}\n labels={{\n default: formatMessage(messages['email.check.button']),\n pending: '',\n }}\n onClick={handleSubmit}\n onMouseDown={(e) => e.preventDefault()}\n />\n </Form>\n </div>\n </div>\n </BaseContainer>\n );\n};\n\nEmailCheckWidget.propTypes = {\n onEmailCheckComplete: PropTypes.func.isRequired,\n BaseContainer: PropTypes.elementType.isRequired,\n FormGroup: PropTypes.elementType.isRequired,\n VALID_EMAIL_REGEX: PropTypes.string.isRequired,\n};\n\nexport default EmailCheckWidget;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"EmailCheckWidget.js","names":["_react","_interopRequireWildcard","require","_reactRedux","_i18n","_paragon","_icons","_propTypes","_interopRequireDefault","_cookies","_actions","_messages","_constants","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EmailCheckWidget","onEmailCheckComplete","activationMsgType","BaseContainer","FormGroup","VALID_EMAIL_REGEX","AccountActivationMessage","ResetPasswordSuccess","formatMessage","useIntl","dispatch","useDispatch","email","setEmail","useState","emailError","setEmailError","hasCompletedRef","useRef","siteAccessed","getCookie","CROSS_ORG_SITE_COOKIE_NAME","submitState","useSelector","state","emailCheck","redirectTo","checkedEmail","errorCode","errorMessage","showResetPasswordSuccessBanner","login","useEffect","current","validateEmail","emailValue","messages","emailRegex","RegExp","test","handleSubmit","preventDefault","error","checkEmailRequest","handleOnChange","value","target","handleOnFocus","jsx","children","id","className","jsxs","messageType","Alert","variant","icon","Info","registeredSite","Form","name","type","autoComplete","handleChange","handleFocus","floatingLabel","StatefulButton","labels","pending","onClick","onMouseDown","propTypes","PropTypes","func","isRequired","string","elementType","defaultProps","_default","exports"],"sources":["../../src/EmailCheckWidget/EmailCheckWidget.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Alert, Form, StatefulButton } from '@openedx/paragon';\nimport { Info } from '@openedx/paragon/icons';\nimport PropTypes from 'prop-types';\n\nimport { getCookie } from '../utils/cookies';\nimport { checkEmailRequest } from './data/actions';\nimport messages from './messages';\nimport { CROSS_ORG_SITE_COOKIE_NAME } from './data/constants';\n\nconst EmailCheckWidget = ({\n onEmailCheckComplete,\n activationMsgType,\n BaseContainer,\n FormGroup,\n VALID_EMAIL_REGEX,\n AccountActivationMessage,\n ResetPasswordSuccess,\n}) => {\n const { formatMessage } = useIntl();\n const dispatch = useDispatch();\n\n const [email, setEmail] = useState('');\n const [emailError, setEmailError] = useState('');\n const hasCompletedRef = useRef(false);\n const siteAccessed = getCookie(CROSS_ORG_SITE_COOKIE_NAME);\n\n const submitState = useSelector(state => state.emailCheck?.submitState || 'default');\n const redirectTo = useSelector(state => state.emailCheck?.redirectTo);\n const checkedEmail = useSelector(state => state.emailCheck?.email);\n const errorCode = useSelector(state => state.emailCheck?.errorCode);\n const errorMessage = useSelector(state => state.emailCheck?.errorMessage);\n const showResetPasswordSuccessBanner = useSelector(state => state.login?.showResetPasswordSuccessBanner || false);\n\n useEffect(() => {\n if (redirectTo && checkedEmail && !hasCompletedRef.current) {\n hasCompletedRef.current = true;\n onEmailCheckComplete(redirectTo, checkedEmail, errorCode);\n }\n }, [redirectTo, checkedEmail, errorCode, onEmailCheckComplete]);\n\n const validateEmail = (emailValue) => {\n if (!emailValue) {\n return formatMessage(messages['email.validation.message']);\n }\n\n const emailRegex = new RegExp(VALID_EMAIL_REGEX, 'i');\n if (!emailRegex.test(emailValue)) {\n return formatMessage(messages['email.format.validation.message']);\n }\n\n return '';\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const error = validateEmail(email);\n if (error) {\n setEmailError(error);\n return;\n }\n\n dispatch(checkEmailRequest(email));\n };\n\n const handleOnChange = (e) => {\n const { value } = e.target;\n setEmail(value);\n if (emailError) {\n setEmailError('');\n }\n };\n\n const handleOnFocus = () => {\n if (emailError) {\n setEmailError('');\n }\n };\n\n return (\n <BaseContainer>\n <div id=\"main-content\" className=\"main-content\">\n <div className=\"mw-xs mt-3\">\n <AccountActivationMessage\n messageType={activationMsgType}\n />\n {showResetPasswordSuccessBanner && <ResetPasswordSuccess />}\n {siteAccessed && (\n <Alert variant=\"info\" icon={Info} className=\"mb-5\">\n {formatMessage(messages['cross.org.sso.attempted'], {\n registeredSite: siteAccessed || 'a partner site',\n })}\n </Alert>\n )}\n {errorMessage && (\n <Alert variant=\"danger\" icon={Info} className=\"mb-3\">\n {errorMessage}\n </Alert>\n )}\n <h3 className=\"mb-3\">{formatMessage(messages['email.check.heading'])}</h3>\n <p className=\"mb-4 text-gray-700\">{formatMessage(messages['email.check.subheading'])}</p>\n <Form id=\"email-check-form\" name=\"email-check-form\">\n <FormGroup\n name=\"email\"\n value={email}\n type=\"email\"\n autoComplete=\"email\"\n handleChange={handleOnChange}\n handleFocus={handleOnFocus}\n errorMessage={emailError}\n floatingLabel=\"Email\"\n />\n <StatefulButton\n id=\"continue-btn\"\n name=\"continue-btn\"\n type=\"submit\"\n variant=\"brand\"\n className=\"login-button-width mt-3\"\n state={submitState}\n labels={{\n default: formatMessage(messages['email.check.button']),\n pending: '',\n }}\n onClick={handleSubmit}\n onMouseDown={(e) => e.preventDefault()}\n />\n </Form>\n </div>\n </div>\n </BaseContainer>\n );\n};\n\nEmailCheckWidget.propTypes = {\n onEmailCheckComplete: PropTypes.func.isRequired,\n activationMsgType: PropTypes.string,\n BaseContainer: PropTypes.elementType.isRequired,\n FormGroup: PropTypes.elementType.isRequired,\n VALID_EMAIL_REGEX: PropTypes.string.isRequired,\n AccountActivationMessage: PropTypes.elementType.isRequired,\n ResetPasswordSuccess: PropTypes.elementType,\n};\n\nEmailCheckWidget.defaultProps = {\n activationMsgType: null,\n ResetPasswordSuccess: null,\n};\n\nexport default EmailCheckWidget;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.REGISTRATION_REQUIRED_FOR_CURRENT_TENANT = exports.PASSWORD_RESET_REQUIRED = exports.EMAIL_REGISTERED_DIFFERENT_ORG = exports.EMAIL_CHECK_SUCCESS = exports.EMAIL_CHECK_STORE_NAME = exports.EMAIL_CHECK_REQUEST = exports.EMAIL_CHECK_FAILURE = exports.EMAIL_CHECK_COMPLETE = exports.CROSS_TENANT_LOGIN = exports.
|
|
6
|
+
exports.REGISTRATION_REQUIRED_FOR_CURRENT_TENANT = exports.PASSWORD_RESET_REQUIRED = exports.EMAIL_REGISTERED_DIFFERENT_ORG = exports.EMAIL_CHECK_SUCCESS = exports.EMAIL_CHECK_STORE_NAME = exports.EMAIL_CHECK_REQUEST = exports.EMAIL_CHECK_FAILURE = exports.EMAIL_CHECK_COMPLETE = exports.CROSS_TENANT_LOGIN = exports.CROSS_ORG_SSO_ATTEMPTED = exports.CROSS_ORG_SITE_COOKIE_NAME = void 0;
|
|
7
7
|
// Action types
|
|
8
8
|
const EMAIL_CHECK_REQUEST = exports.EMAIL_CHECK_REQUEST = 'EMAIL_CHECK_REQUEST';
|
|
9
9
|
const EMAIL_CHECK_SUCCESS = exports.EMAIL_CHECK_SUCCESS = 'EMAIL_CHECK_SUCCESS';
|
|
@@ -21,5 +21,5 @@ const CROSS_ORG_SSO_ATTEMPTED = exports.CROSS_ORG_SSO_ATTEMPTED = 'cross_org_sso
|
|
|
21
21
|
const PASSWORD_RESET_REQUIRED = exports.PASSWORD_RESET_REQUIRED = 'password_reset_required';
|
|
22
22
|
|
|
23
23
|
// Cookie names
|
|
24
|
-
const
|
|
24
|
+
const CROSS_ORG_SITE_COOKIE_NAME = exports.CROSS_ORG_SITE_COOKIE_NAME = 'cross_org_sso_site_accessed';
|
|
25
25
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["EMAIL_CHECK_REQUEST","exports","EMAIL_CHECK_SUCCESS","EMAIL_CHECK_FAILURE","EMAIL_CHECK_COMPLETE","EMAIL_CHECK_STORE_NAME","EMAIL_REGISTERED_DIFFERENT_ORG","CROSS_TENANT_LOGIN","REGISTRATION_REQUIRED_FOR_CURRENT_TENANT","CROSS_ORG_SSO_ATTEMPTED","PASSWORD_RESET_REQUIRED","
|
|
1
|
+
{"version":3,"file":"constants.js","names":["EMAIL_CHECK_REQUEST","exports","EMAIL_CHECK_SUCCESS","EMAIL_CHECK_FAILURE","EMAIL_CHECK_COMPLETE","EMAIL_CHECK_STORE_NAME","EMAIL_REGISTERED_DIFFERENT_ORG","CROSS_TENANT_LOGIN","REGISTRATION_REQUIRED_FOR_CURRENT_TENANT","CROSS_ORG_SSO_ATTEMPTED","PASSWORD_RESET_REQUIRED","CROSS_ORG_SITE_COOKIE_NAME"],"sources":["../../../src/EmailCheckWidget/data/constants.js"],"sourcesContent":["// Action types\nexport const EMAIL_CHECK_REQUEST = 'EMAIL_CHECK_REQUEST';\nexport const EMAIL_CHECK_SUCCESS = 'EMAIL_CHECK_SUCCESS';\nexport const EMAIL_CHECK_FAILURE = 'EMAIL_CHECK_FAILURE';\nexport const EMAIL_CHECK_COMPLETE = 'EMAIL_CHECK_COMPLETE';\n\n// Store name\nexport const EMAIL_CHECK_STORE_NAME = 'emailCheck';\n\n// Error codes from backend\nexport const EMAIL_REGISTERED_DIFFERENT_ORG = 'email_registered_different_org';\nexport const CROSS_TENANT_LOGIN = 'cross_tenant_login';\nexport const REGISTRATION_REQUIRED_FOR_CURRENT_TENANT = 'registration_required_for_current_tenant';\nexport const CROSS_ORG_SSO_ATTEMPTED = 'cross_org_sso_attempted';\nexport const PASSWORD_RESET_REQUIRED = 'password_reset_required';\n\n// Cookie names\nexport const CROSS_ORG_SITE_COOKIE_NAME = 'cross_org_sso_site_accessed';\n"],"mappings":";;;;;;AAAA;AACO,MAAMA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,qBAAqB;AACjD,MAAME,mBAAmB,GAAAD,OAAA,CAAAC,mBAAA,GAAG,qBAAqB;AACjD,MAAMC,mBAAmB,GAAAF,OAAA,CAAAE,mBAAA,GAAG,qBAAqB;AACjD,MAAMC,oBAAoB,GAAAH,OAAA,CAAAG,oBAAA,GAAG,sBAAsB;;AAE1D;AACO,MAAMC,sBAAsB,GAAAJ,OAAA,CAAAI,sBAAA,GAAG,YAAY;;AAElD;AACO,MAAMC,8BAA8B,GAAAL,OAAA,CAAAK,8BAAA,GAAG,gCAAgC;AACvE,MAAMC,kBAAkB,GAAAN,OAAA,CAAAM,kBAAA,GAAG,oBAAoB;AAC/C,MAAMC,wCAAwC,GAAAP,OAAA,CAAAO,wCAAA,GAAG,0CAA0C;AAC3F,MAAMC,uBAAuB,GAAAR,OAAA,CAAAQ,uBAAA,GAAG,yBAAyB;AACzD,MAAMC,uBAAuB,GAAAT,OAAA,CAAAS,uBAAA,GAAG,yBAAyB;;AAEhE;AACO,MAAMC,0BAA0B,GAAAV,OAAA,CAAAU,0BAAA,GAAG,6BAA6B","ignoreList":[]}
|
|
@@ -13,7 +13,7 @@ var _constants = require("./constants");
|
|
|
13
13
|
var _service = require("./service");
|
|
14
14
|
function* handleEmailCheck(action) {
|
|
15
15
|
try {
|
|
16
|
-
(0, _cookies.setCookie)(_constants.
|
|
16
|
+
(0, _cookies.setCookie)(_constants.CROSS_ORG_SITE_COOKIE_NAME, '');
|
|
17
17
|
const {
|
|
18
18
|
email
|
|
19
19
|
} = action.payload;
|
|
@@ -25,7 +25,7 @@ function* handleEmailCheck(action) {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
function* watchEmailCheck() {
|
|
28
|
-
yield (0, _effects.
|
|
28
|
+
yield (0, _effects.takeLatest)(_constants.EMAIL_CHECK_REQUEST, handleEmailCheck);
|
|
29
29
|
}
|
|
30
30
|
function* emailCheckSaga() {
|
|
31
31
|
yield watchEmailCheck();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sagas.js","names":["_effects","require","_cookies","_actions","_constants","_service","handleEmailCheck","action","setCookie","
|
|
1
|
+
{"version":3,"file":"sagas.js","names":["_effects","require","_cookies","_actions","_constants","_service","handleEmailCheck","action","setCookie","CROSS_ORG_SITE_COOKIE_NAME","email","payload","result","call","checkEmailExists","put","checkEmailSuccess","redirectTo","errorCode","context","error","errorMessage","response","data","checkEmailFailure","watchEmailCheck","takeLatest","EMAIL_CHECK_REQUEST","emailCheckSaga"],"sources":["../../../src/EmailCheckWidget/data/sagas.js"],"sourcesContent":["import { call, put, takeLatest } from 'redux-saga/effects';\n\nimport { setCookie } from '../../utils/cookies';\nimport { checkEmailFailure, checkEmailSuccess } from './actions';\nimport { CROSS_ORG_SITE_COOKIE_NAME, EMAIL_CHECK_REQUEST } from './constants';\nimport { checkEmailExists } from './service';\n\nexport function* handleEmailCheck(action) {\n try {\n setCookie(CROSS_ORG_SITE_COOKIE_NAME, '');\n const { email } = action.payload;\n const result = yield call(checkEmailExists, email);\n yield put(checkEmailSuccess(result.redirectTo, email, result.errorCode, result.context));\n } catch (error) {\n const errorMessage = error?.response?.data?.error\n || 'An error occurred. Please try again.';\n yield put(checkEmailFailure(errorMessage));\n }\n}\n\nexport function* watchEmailCheck() {\n yield takeLatest(EMAIL_CHECK_REQUEST, handleEmailCheck);\n}\n\nexport default function* emailCheckSaga() {\n yield watchEmailCheck();\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEO,UAAUK,gBAAgBA,CAACC,MAAM,EAAE;EACxC,IAAI;IACF,IAAAC,kBAAS,EAACC,qCAA0B,EAAE,EAAE,CAAC;IACzC,MAAM;MAAEC;IAAM,CAAC,GAAGH,MAAM,CAACI,OAAO;IAChC,MAAMC,MAAM,GAAG,MAAM,IAAAC,aAAI,EAACC,yBAAgB,EAAEJ,KAAK,CAAC;IAClD,MAAM,IAAAK,YAAG,EAAC,IAAAC,0BAAiB,EAACJ,MAAM,CAACK,UAAU,EAAEP,KAAK,EAAEE,MAAM,CAACM,SAAS,EAAEN,MAAM,CAACO,OAAO,CAAC,CAAC;EAC1F,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,MAAMC,YAAY,GAAGD,KAAK,EAAEE,QAAQ,EAAEC,IAAI,EAAEH,KAAK,IAC5C,sCAAsC;IAC3C,MAAM,IAAAL,YAAG,EAAC,IAAAS,0BAAiB,EAACH,YAAY,CAAC,CAAC;EAC5C;AACF;AAEO,UAAUI,eAAeA,CAAA,EAAG;EACjC,MAAM,IAAAC,mBAAU,EAACC,8BAAmB,EAAErB,gBAAgB,CAAC;AACzD;AAEe,UAAUsB,cAAcA,CAAA,EAAG;EACxC,MAAMH,eAAe,CAAC,CAAC;AACzB","ignoreList":[]}
|
|
@@ -33,7 +33,7 @@ const messages = (0, _i18n.defineMessages)({
|
|
|
33
33
|
},
|
|
34
34
|
'cross.org.sso.attempted': {
|
|
35
35
|
id: 'cross.org.sso.attempted',
|
|
36
|
-
defaultMessage: '
|
|
36
|
+
defaultMessage: 'Looks like your account already exists on {registeredSite}. Please register with another email address.',
|
|
37
37
|
description: 'Alert message when user tries to SSO with an email that is already registered on another organization'
|
|
38
38
|
}
|
|
39
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","id","defaultMessage","description","_default","exports","default"],"sources":["../../src/EmailCheckWidget/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n 'email.check.heading': {\n id: 'email.check.heading',\n defaultMessage: 'Welcome! Let\\'s get started',\n description: 'Heading for email check page',\n },\n 'email.check.subheading': {\n id: 'email.check.subheading',\n defaultMessage: 'Enter your email address to continue',\n description: 'Subheading for email check page',\n },\n 'email.check.button': {\n id: 'email.check.button',\n defaultMessage: 'Continue',\n description: 'Button text for email check form',\n },\n 'email.validation.message': {\n id: 'email.validation.message',\n defaultMessage: 'Please enter your email',\n description: 'Error message when email field is empty',\n },\n 'email.format.validation.message': {\n id: 'email.format.validation.message',\n defaultMessage: 'Please enter a valid email address',\n description: 'Error message when email format is invalid',\n },\n 'cross.org.sso.attempted': {\n id: 'cross.org.sso.attempted',\n defaultMessage: '
|
|
1
|
+
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","id","defaultMessage","description","_default","exports","default"],"sources":["../../src/EmailCheckWidget/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n 'email.check.heading': {\n id: 'email.check.heading',\n defaultMessage: 'Welcome! Let\\'s get started',\n description: 'Heading for email check page',\n },\n 'email.check.subheading': {\n id: 'email.check.subheading',\n defaultMessage: 'Enter your email address to continue',\n description: 'Subheading for email check page',\n },\n 'email.check.button': {\n id: 'email.check.button',\n defaultMessage: 'Continue',\n description: 'Button text for email check form',\n },\n 'email.validation.message': {\n id: 'email.validation.message',\n defaultMessage: 'Please enter your email',\n description: 'Error message when email field is empty',\n },\n 'email.format.validation.message': {\n id: 'email.format.validation.message',\n defaultMessage: 'Please enter a valid email address',\n description: 'Error message when email format is invalid',\n },\n 'cross.org.sso.attempted': {\n id: 'cross.org.sso.attempted',\n defaultMessage: 'Looks like your account already exists on {registeredSite}. Please register with another email address.',\n description: 'Alert message when user tries to SSO with an email that is already registered on another organization',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9B,qBAAqB,EAAE;IACrBC,EAAE,EAAE,qBAAqB;IACzBC,cAAc,EAAE,6BAA6B;IAC7CC,WAAW,EAAE;EACf,CAAC;EACD,wBAAwB,EAAE;IACxBF,EAAE,EAAE,wBAAwB;IAC5BC,cAAc,EAAE,sCAAsC;IACtDC,WAAW,EAAE;EACf,CAAC;EACD,oBAAoB,EAAE;IACpBF,EAAE,EAAE,oBAAoB;IACxBC,cAAc,EAAE,UAAU;IAC1BC,WAAW,EAAE;EACf,CAAC;EACD,0BAA0B,EAAE;IAC1BF,EAAE,EAAE,0BAA0B;IAC9BC,cAAc,EAAE,yBAAyB;IACzCC,WAAW,EAAE;EACf,CAAC;EACD,iCAAiC,EAAE;IACjCF,EAAE,EAAE,iCAAiC;IACrCC,cAAc,EAAE,oCAAoC;IACpDC,WAAW,EAAE;EACf,CAAC;EACD,yBAAyB,EAAE;IACzBF,EAAE,EAAE,yBAAyB;IAC7BC,cAAc,EAAE,yGAAyG;IACzHC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYP,QAAQ","ignoreList":[]}
|