@anas_hameed/edly-saas-widget 0.1.9 → 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/EdlyLogistrationInfo.js +5 -0
- package/dist/EdlyLogistrationInfo/EdlyLogistrationInfo.js.map +1 -1
- package/dist/EdlyLogistrationInfo/messages.js +8 -3
- package/dist/EdlyLogistrationInfo/messages.js.map +1 -1
- package/dist/EmailCheckWidget/EmailCheckWidget.js +31 -8
- package/dist/EmailCheckWidget/EmailCheckWidget.js.map +1 -1
- package/dist/EmailCheckWidget/data/constants.js +6 -1
- package/dist/EmailCheckWidget/data/constants.js.map +1 -1
- package/dist/EmailCheckWidget/data/sagas.js +3 -1
- package/dist/EmailCheckWidget/data/sagas.js.map +1 -1
- package/dist/EmailCheckWidget/messages.js +5 -0
- package/dist/EmailCheckWidget/messages.js.map +1 -1
- package/dist/FooterWidget/index.js +6 -9
- package/dist/FooterWidget/index.js.map +1 -1
- package/dist/HeaderWidget/index.js +6 -12
- package/dist/HeaderWidget/index.js.map +1 -1
- package/dist/utils/cookies.js +27 -0
- package/dist/utils/cookies.js.map +1 -0
- package/package.json +5 -4
|
@@ -37,6 +37,11 @@ const EdlyLogistrationInfo = () => {
|
|
|
37
37
|
registeredSite: context.registered_site || 'a partner site'
|
|
38
38
|
});
|
|
39
39
|
break;
|
|
40
|
+
case _constants.PASSWORD_RESET_REQUIRED:
|
|
41
|
+
alertMessage = formatMessage(_messages.default['edly.password.reset.required'], {
|
|
42
|
+
registeredSite: context.registered_site || 'a partner site'
|
|
43
|
+
});
|
|
44
|
+
break;
|
|
40
45
|
default:
|
|
41
46
|
return null;
|
|
42
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdlyLogistrationInfo.js","names":["_react","_interopRequireDefault","require","_reactRedux","_i18n","_paragon","_icons","_constants","_messages","_jsxRuntime","e","__esModule","default","EdlyLogistrationInfo","formatMessage","useIntl","errorCode","useSelector","state","emailCheck","context","alertMessage","EMAIL_REGISTERED_DIFFERENT_ORG","messages","CROSS_TENANT_LOGIN","registeredSite","registered_site","REGISTRATION_REQUIRED_FOR_CURRENT_TENANT","jsx","Alert","id","className","variant","icon","Info","children","_default","exports"],"sources":["../../src/EdlyLogistrationInfo/EdlyLogistrationInfo.jsx"],"sourcesContent":["import React from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Alert } from '@openedx/paragon';\nimport { Info } from '@openedx/paragon/icons';\n\nimport {\n CROSS_TENANT_LOGIN,\n EMAIL_REGISTERED_DIFFERENT_ORG,\n REGISTRATION_REQUIRED_FOR_CURRENT_TENANT,\n} from '../EmailCheckWidget/data/constants';\nimport messages from './messages';\n\nconst EdlyLogistrationInfo = () => {\n const { formatMessage } = useIntl();\n const errorCode = useSelector(state => state.emailCheck?.errorCode);\n const context = useSelector(state => state.emailCheck?.context || {});\n\n if (!errorCode) {\n return null;\n }\n\n let alertMessage;\n switch (errorCode) {\n case EMAIL_REGISTERED_DIFFERENT_ORG:\n alertMessage = formatMessage(messages['edly.email.registered.different.org']);\n break;\n case CROSS_TENANT_LOGIN:\n alertMessage = formatMessage(messages['edly.cross.tenant.login.enabled'], {\n registeredSite: context.registered_site || 'a partner site',\n });\n break;\n case REGISTRATION_REQUIRED_FOR_CURRENT_TENANT:\n alertMessage = formatMessage(messages['edly.registration.required.for.tenant'], {\n registeredSite: context.registered_site || 'a partner site',\n });\n break;\n default:\n return null;\n }\n\n return (\n <Alert id=\"edly-alert\" className=\"mb-5\" variant=\"info\" icon={Info}>\n <p>{alertMessage}</p>\n </Alert>\n );\n};\n\nexport default EdlyLogistrationInfo;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,UAAA,GAAAL,OAAA;
|
|
1
|
+
{"version":3,"file":"EdlyLogistrationInfo.js","names":["_react","_interopRequireDefault","require","_reactRedux","_i18n","_paragon","_icons","_constants","_messages","_jsxRuntime","e","__esModule","default","EdlyLogistrationInfo","formatMessage","useIntl","errorCode","useSelector","state","emailCheck","context","alertMessage","EMAIL_REGISTERED_DIFFERENT_ORG","messages","CROSS_TENANT_LOGIN","registeredSite","registered_site","REGISTRATION_REQUIRED_FOR_CURRENT_TENANT","PASSWORD_RESET_REQUIRED","jsx","Alert","id","className","variant","icon","Info","children","_default","exports"],"sources":["../../src/EdlyLogistrationInfo/EdlyLogistrationInfo.jsx"],"sourcesContent":["import React from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Alert } from '@openedx/paragon';\nimport { Info } from '@openedx/paragon/icons';\n\nimport {\n CROSS_TENANT_LOGIN,\n EMAIL_REGISTERED_DIFFERENT_ORG,\n PASSWORD_RESET_REQUIRED,\n REGISTRATION_REQUIRED_FOR_CURRENT_TENANT,\n} from '../EmailCheckWidget/data/constants';\nimport messages from './messages';\n\nconst EdlyLogistrationInfo = () => {\n const { formatMessage } = useIntl();\n const errorCode = useSelector(state => state.emailCheck?.errorCode);\n const context = useSelector(state => state.emailCheck?.context || {});\n\n if (!errorCode) {\n return null;\n }\n\n let alertMessage;\n switch (errorCode) {\n case EMAIL_REGISTERED_DIFFERENT_ORG:\n alertMessage = formatMessage(messages['edly.email.registered.different.org']);\n break;\n case CROSS_TENANT_LOGIN:\n alertMessage = formatMessage(messages['edly.cross.tenant.login.enabled'], {\n registeredSite: context.registered_site || 'a partner site',\n });\n break;\n case REGISTRATION_REQUIRED_FOR_CURRENT_TENANT:\n alertMessage = formatMessage(messages['edly.registration.required.for.tenant'], {\n registeredSite: context.registered_site || 'a partner site',\n });\n break;\n case PASSWORD_RESET_REQUIRED:\n alertMessage = formatMessage(messages['edly.password.reset.required'], {\n registeredSite: context.registered_site || 'a partner site',\n });\n break;\n default:\n return null;\n }\n\n return (\n <Alert id=\"edly-alert\" className=\"mb-5\" variant=\"info\" icon={Info}>\n <p>{alertMessage}</p>\n </Alert>\n );\n};\n\nexport default EdlyLogistrationInfo;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,UAAA,GAAAL,OAAA;AAMA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAkC,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElC,MAAMG,oBAAoB,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAEC;EAAc,CAAC,GAAG,IAAAC,aAAO,EAAC,CAAC;EACnC,MAAMC,SAAS,GAAG,IAAAC,uBAAW,EAACC,KAAK,IAAIA,KAAK,CAACC,UAAU,EAAEH,SAAS,CAAC;EACnE,MAAMI,OAAO,GAAG,IAAAH,uBAAW,EAACC,KAAK,IAAIA,KAAK,CAACC,UAAU,EAAEC,OAAO,IAAI,CAAC,CAAC,CAAC;EAErE,IAAI,CAACJ,SAAS,EAAE;IACd,OAAO,IAAI;EACb;EAEA,IAAIK,YAAY;EAChB,QAAQL,SAAS;IACf,KAAKM,yCAA8B;MACjCD,YAAY,GAAGP,aAAa,CAACS,iBAAQ,CAAC,qCAAqC,CAAC,CAAC;MAC7E;IACF,KAAKC,6BAAkB;MACrBH,YAAY,GAAGP,aAAa,CAACS,iBAAQ,CAAC,iCAAiC,CAAC,EAAE;QACxEE,cAAc,EAAEL,OAAO,CAACM,eAAe,IAAI;MAC7C,CAAC,CAAC;MACF;IACF,KAAKC,mDAAwC;MAC3CN,YAAY,GAAGP,aAAa,CAACS,iBAAQ,CAAC,uCAAuC,CAAC,EAAE;QAC9EE,cAAc,EAAEL,OAAO,CAACM,eAAe,IAAI;MAC7C,CAAC,CAAC;MACF;IACF,KAAKE,kCAAuB;MAC1BP,YAAY,GAAGP,aAAa,CAACS,iBAAQ,CAAC,8BAA8B,CAAC,EAAE;QACrEE,cAAc,EAAEL,OAAO,CAACM,eAAe,IAAI;MAC7C,CAAC,CAAC;MACF;IACF;MACE,OAAO,IAAI;EACf;EAEA,oBACE,IAAAjB,WAAA,CAAAoB,GAAA,EAACxB,QAAA,CAAAyB,KAAK;IAACC,EAAE,EAAC,YAAY;IAACC,SAAS,EAAC,MAAM;IAACC,OAAO,EAAC,MAAM;IAACC,IAAI,EAAEC,WAAK;IAAAC,QAAA,eAChE,IAAA3B,WAAA,CAAAoB,GAAA;MAAAO,QAAA,EAAIf;IAAY,CAAI;EAAC,CAChB,CAAC;AAEZ,CAAC;AAAC,IAAAgB,QAAA,GAAAC,OAAA,CAAA1B,OAAA,GAEaC,oBAAoB","ignoreList":[]}
|
|
@@ -8,18 +8,23 @@ 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
|
+
},
|
|
24
|
+
'edly.password.reset.required': {
|
|
25
|
+
id: 'edly.password.reset.required',
|
|
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',
|
|
27
|
+
description: 'Alert message when SSO user tries to login with password on different tenant'
|
|
23
28
|
}
|
|
24
29
|
});
|
|
25
30
|
var _default = exports.default = messages;
|
|
@@ -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":[]}
|
|
@@ -10,16 +10,21 @@ var _i18n = require("@edx/frontend-platform/i18n");
|
|
|
10
10
|
var _paragon = require("@openedx/paragon");
|
|
11
11
|
var _icons = require("@openedx/paragon/icons");
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
var _cookies = require("../utils/cookies");
|
|
13
14
|
var _actions = require("./data/actions");
|
|
14
15
|
var _messages = _interopRequireDefault(require("./messages"));
|
|
16
|
+
var _constants = require("./data/constants");
|
|
15
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
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); }
|
|
18
20
|
const EmailCheckWidget = ({
|
|
19
21
|
onEmailCheckComplete,
|
|
22
|
+
activationMsgType,
|
|
20
23
|
BaseContainer,
|
|
21
24
|
FormGroup,
|
|
22
|
-
VALID_EMAIL_REGEX
|
|
25
|
+
VALID_EMAIL_REGEX,
|
|
26
|
+
AccountActivationMessage,
|
|
27
|
+
ResetPasswordSuccess
|
|
23
28
|
}) => {
|
|
24
29
|
const {
|
|
25
30
|
formatMessage
|
|
@@ -28,11 +33,13 @@ const EmailCheckWidget = ({
|
|
|
28
33
|
const [email, setEmail] = (0, _react.useState)('');
|
|
29
34
|
const [emailError, setEmailError] = (0, _react.useState)('');
|
|
30
35
|
const hasCompletedRef = (0, _react.useRef)(false);
|
|
36
|
+
const siteAccessed = (0, _cookies.getCookie)(_constants.CROSS_ORG_SITE_COOKIE_NAME);
|
|
31
37
|
const submitState = (0, _reactRedux.useSelector)(state => state.emailCheck?.submitState || 'default');
|
|
32
38
|
const redirectTo = (0, _reactRedux.useSelector)(state => state.emailCheck?.redirectTo);
|
|
33
39
|
const checkedEmail = (0, _reactRedux.useSelector)(state => state.emailCheck?.email);
|
|
34
40
|
const errorCode = (0, _reactRedux.useSelector)(state => state.emailCheck?.errorCode);
|
|
35
41
|
const errorMessage = (0, _reactRedux.useSelector)(state => state.emailCheck?.errorMessage);
|
|
42
|
+
const showResetPasswordSuccessBanner = (0, _reactRedux.useSelector)(state => state.login?.showResetPasswordSuccessBanner || false);
|
|
36
43
|
(0, _react.useEffect)(() => {
|
|
37
44
|
if (redirectTo && checkedEmail && !hasCompletedRef.current) {
|
|
38
45
|
hasCompletedRef.current = true;
|
|
@@ -78,17 +85,26 @@ const EmailCheckWidget = ({
|
|
|
78
85
|
className: "main-content",
|
|
79
86
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
80
87
|
className: "mw-xs mt-3",
|
|
81
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AccountActivationMessage, {
|
|
89
|
+
messageType: activationMsgType
|
|
90
|
+
}), showResetPasswordSuccessBanner && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResetPasswordSuccess, {}), siteAccessed && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Alert, {
|
|
91
|
+
variant: "info",
|
|
92
|
+
icon: _icons.Info,
|
|
93
|
+
className: "mb-5",
|
|
94
|
+
children: formatMessage(_messages.default['cross.org.sso.attempted'], {
|
|
95
|
+
registeredSite: siteAccessed || 'a partner site'
|
|
96
|
+
})
|
|
87
97
|
}), errorMessage && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Alert, {
|
|
88
98
|
variant: "danger",
|
|
89
99
|
icon: _icons.Info,
|
|
90
100
|
className: "mb-3",
|
|
91
101
|
children: errorMessage
|
|
102
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("h3", {
|
|
103
|
+
className: "mb-3",
|
|
104
|
+
children: formatMessage(_messages.default['email.check.heading'])
|
|
105
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
106
|
+
className: "mb-4 text-gray-700",
|
|
107
|
+
children: formatMessage(_messages.default['email.check.subheading'])
|
|
92
108
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Form, {
|
|
93
109
|
id: "email-check-form",
|
|
94
110
|
name: "email-check-form",
|
|
@@ -122,9 +138,16 @@ const EmailCheckWidget = ({
|
|
|
122
138
|
};
|
|
123
139
|
EmailCheckWidget.propTypes = {
|
|
124
140
|
onEmailCheckComplete: _propTypes.default.func.isRequired,
|
|
141
|
+
activationMsgType: _propTypes.default.string,
|
|
125
142
|
BaseContainer: _propTypes.default.elementType.isRequired,
|
|
126
143
|
FormGroup: _propTypes.default.elementType.isRequired,
|
|
127
|
-
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
|
|
128
151
|
};
|
|
129
152
|
var _default = exports.default = EmailCheckWidget;
|
|
130
153
|
//# sourceMappingURL=EmailCheckWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailCheckWidget.js","names":["_react","_interopRequireWildcard","require","_reactRedux","_i18n","_paragon","_icons","_propTypes","_interopRequireDefault","_actions","_messages","_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","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 { checkEmailRequest } from './data/actions';\nimport messages from './messages';\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\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 <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\n {errorMessage && (\n <Alert variant=\"danger\" icon={Info} className=\"mb-3\">\n {errorMessage}\n </Alert>\n )}\n\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.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 = void 0;
|
|
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';
|
|
@@ -17,4 +17,9 @@ const EMAIL_CHECK_STORE_NAME = exports.EMAIL_CHECK_STORE_NAME = 'emailCheck';
|
|
|
17
17
|
const EMAIL_REGISTERED_DIFFERENT_ORG = exports.EMAIL_REGISTERED_DIFFERENT_ORG = 'email_registered_different_org';
|
|
18
18
|
const CROSS_TENANT_LOGIN = exports.CROSS_TENANT_LOGIN = 'cross_tenant_login';
|
|
19
19
|
const REGISTRATION_REQUIRED_FOR_CURRENT_TENANT = exports.REGISTRATION_REQUIRED_FOR_CURRENT_TENANT = 'registration_required_for_current_tenant';
|
|
20
|
+
const CROSS_ORG_SSO_ATTEMPTED = exports.CROSS_ORG_SSO_ATTEMPTED = 'cross_org_sso_attempted';
|
|
21
|
+
const PASSWORD_RESET_REQUIRED = exports.PASSWORD_RESET_REQUIRED = 'password_reset_required';
|
|
22
|
+
|
|
23
|
+
// Cookie names
|
|
24
|
+
const CROSS_ORG_SITE_COOKIE_NAME = exports.CROSS_ORG_SITE_COOKIE_NAME = 'cross_org_sso_site_accessed';
|
|
20
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"],"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';\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","ignoreList":[]}
|
|
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":[]}
|
|
@@ -7,11 +7,13 @@ exports.default = emailCheckSaga;
|
|
|
7
7
|
exports.handleEmailCheck = handleEmailCheck;
|
|
8
8
|
exports.watchEmailCheck = watchEmailCheck;
|
|
9
9
|
var _effects = require("redux-saga/effects");
|
|
10
|
+
var _cookies = require("../../utils/cookies");
|
|
10
11
|
var _actions = require("./actions");
|
|
11
12
|
var _constants = require("./constants");
|
|
12
13
|
var _service = require("./service");
|
|
13
14
|
function* handleEmailCheck(action) {
|
|
14
15
|
try {
|
|
16
|
+
(0, _cookies.setCookie)(_constants.CROSS_ORG_SITE_COOKIE_NAME, '');
|
|
15
17
|
const {
|
|
16
18
|
email
|
|
17
19
|
} = action.payload;
|
|
@@ -23,7 +25,7 @@ function* handleEmailCheck(action) {
|
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
function* watchEmailCheck() {
|
|
26
|
-
yield (0, _effects.
|
|
28
|
+
yield (0, _effects.takeLatest)(_constants.EMAIL_CHECK_REQUEST, handleEmailCheck);
|
|
27
29
|
}
|
|
28
30
|
function* emailCheckSaga() {
|
|
29
31
|
yield watchEmailCheck();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sagas.js","names":["_effects","require","_actions","_constants","_service","handleEmailCheck","action","email","payload","result","call","checkEmailExists","put","checkEmailSuccess","redirectTo","errorCode","context","error","errorMessage","response","data","checkEmailFailure","watchEmailCheck","
|
|
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":[]}
|
|
@@ -30,6 +30,11 @@ const messages = (0, _i18n.defineMessages)({
|
|
|
30
30
|
id: 'email.format.validation.message',
|
|
31
31
|
defaultMessage: 'Please enter a valid email address',
|
|
32
32
|
description: 'Error message when email format is invalid'
|
|
33
|
+
},
|
|
34
|
+
'cross.org.sso.attempted': {
|
|
35
|
+
id: 'cross.org.sso.attempted',
|
|
36
|
+
defaultMessage: 'Looks like your account already exists on {registeredSite}. Please register with another email address.',
|
|
37
|
+
description: 'Alert message when user tries to SSO with an email that is already registered on another organization'
|
|
33
38
|
}
|
|
34
39
|
});
|
|
35
40
|
var _default = exports.default = messages;
|
|
@@ -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});\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;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYP,QAAQ","ignoreList":[]}
|
|
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":[]}
|
|
@@ -44,14 +44,8 @@ const FooterWidget = () => {
|
|
|
44
44
|
}, [config?.COLORS?.primary, footerData]);
|
|
45
45
|
(0, _react.useEffect)(() => {
|
|
46
46
|
const fetchData = async () => {
|
|
47
|
-
if (!config?.MARKETING_SITE_BASE_URL) {
|
|
48
|
-
console.error('No url found for discovery', config);
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
47
|
try {
|
|
52
|
-
const response = await fetch(`${config.MARKETING_SITE_BASE_URL}/wp-json/edly-wp-routes/footer`,
|
|
53
|
-
// `https://venus.discover.multitenantsdev.edly.io/wp-json/edly-wp-routes/footer`,
|
|
54
|
-
{
|
|
48
|
+
const response = await fetch(`${config.MARKETING_SITE_BASE_URL}/wp-json/edly-wp-routes/footer`, {
|
|
55
49
|
credentials: 'include'
|
|
56
50
|
});
|
|
57
51
|
if (!response.ok) {
|
|
@@ -63,11 +57,12 @@ const FooterWidget = () => {
|
|
|
63
57
|
});
|
|
64
58
|
setFooterData(cleanHtml);
|
|
65
59
|
} catch (error) {
|
|
60
|
+
// eslint-disable-next-line no-console
|
|
66
61
|
console.error(error);
|
|
67
62
|
}
|
|
68
63
|
};
|
|
69
64
|
fetchData();
|
|
70
|
-
}, []);
|
|
65
|
+
}, [config]);
|
|
71
66
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
72
67
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHelmet.Helmet, {
|
|
73
68
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("link", {
|
|
@@ -76,7 +71,9 @@ const FooterWidget = () => {
|
|
|
76
71
|
crossOrigin: "anonymous"
|
|
77
72
|
})
|
|
78
73
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("footer", {
|
|
79
|
-
className: "site-header"
|
|
74
|
+
className: "site-header"
|
|
75
|
+
// eslint-disable-next-line react/no-danger
|
|
76
|
+
,
|
|
80
77
|
dangerouslySetInnerHTML: {
|
|
81
78
|
__html: footerData
|
|
82
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_frontendPlatform","require","_react","_dompurify","_interopRequireDefault","_reactHelmet","_jsxRuntime","e","__esModule","default","FooterWidget","footerData","setFooterData","useState","config","getConfig","useEffect","document","documentElement","style","setProperty","COLORS","primary","scrollBtn","getElementById","scrollToTop","window","scrollTo","top","behavior","toggleVisibility","scrollY","classList","add","remove","addEventListener","removeEventListener","removeProperty","fetchData","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_frontendPlatform","require","_react","_dompurify","_interopRequireDefault","_reactHelmet","_jsxRuntime","e","__esModule","default","FooterWidget","footerData","setFooterData","useState","config","getConfig","useEffect","document","documentElement","style","setProperty","COLORS","primary","scrollBtn","getElementById","scrollToTop","window","scrollTo","top","behavior","toggleVisibility","scrollY","classList","add","remove","addEventListener","removeEventListener","removeProperty","fetchData","response","fetch","MARKETING_SITE_BASE_URL","credentials","ok","Error","status","jsonData","json","cleanHtml","DOMPurify","sanitize","ADD_ATTR","error","console","jsxs","Fragment","children","jsx","Helmet","rel","href","crossOrigin","className","dangerouslySetInnerHTML","__html","_default","exports"],"sources":["../../src/FooterWidget/index.jsx"],"sourcesContent":["import { getConfig } from '@edx/frontend-platform';\nimport { useEffect, useState } from 'react';\nimport DOMPurify from 'dompurify';\nimport { Helmet } from 'react-helmet';\nimport './main.scss';\n\nconst FooterWidget = () => {\n const [footerData, setFooterData] = useState('');\n const config = getConfig();\n\n useEffect(() => {\n document.documentElement.style.setProperty(\n '--primary-color',\n config?.COLORS?.primary || '#de2025',\n );\n const scrollBtn = document.getElementById('scrollToTop');\n if (scrollBtn) {\n const scrollToTop = () => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n };\n\n const toggleVisibility = () => {\n if (window.scrollY > 300) {\n scrollBtn.classList.add('show-btn'); // We will style this class in SCSS\n } else {\n scrollBtn.classList.remove('show-btn');\n }\n };\n\n scrollBtn.addEventListener('click', scrollToTop);\n window.addEventListener('scroll', toggleVisibility);\n\n return () => {\n scrollBtn.removeEventListener('click', scrollToTop);\n window.removeEventListener('scroll', toggleVisibility);\n };\n }\n return () => {\n document.documentElement.style.removeProperty('--primary-color');\n };\n }, [config?.COLORS?.primary, footerData]);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetch(\n `${config.MARKETING_SITE_BASE_URL}/wp-json/edly-wp-routes/footer`,\n { credentials: 'include' },\n );\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const jsonData = await response.json();\n const cleanHtml = DOMPurify.sanitize(jsonData, {\n ADD_ATTR: ['target', 'class'],\n });\n setFooterData(cleanHtml);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n };\n\n fetchData();\n }, [config]);\n\n return (\n <>\n <Helmet>\n <link\n rel=\"stylesheet\"\n href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css\"\n crossOrigin=\"anonymous\"\n />\n </Helmet>\n <footer\n className=\"site-header\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: footerData }}\n />\n </>\n );\n};\n\nexport default FooterWidget;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,7 +17,6 @@ const HeaderWidget = () => {
|
|
|
17
17
|
const [isMobile, setIsMobile] = (0, _react.useState)(window.innerWidth < WIDTH);
|
|
18
18
|
const config = (0, _frontendPlatform.getConfig)();
|
|
19
19
|
(0, _react.useEffect)(() => {
|
|
20
|
-
console.log('color: ', config.COLORS);
|
|
21
20
|
document.documentElement.style.setProperty('--primary-color', config?.COLORS?.primary || '#de2025');
|
|
22
21
|
const handleResize = () => {
|
|
23
22
|
setIsMobile(window.innerWidth < WIDTH);
|
|
@@ -33,14 +32,8 @@ const HeaderWidget = () => {
|
|
|
33
32
|
}, [config?.COLORS]);
|
|
34
33
|
(0, _react.useEffect)(() => {
|
|
35
34
|
const fetchData = async () => {
|
|
36
|
-
if (!config?.MARKETING_SITE_BASE_URL) {
|
|
37
|
-
console.error('No url found for discovery', config);
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
35
|
try {
|
|
41
|
-
const response = await fetch(`${config.MARKETING_SITE_BASE_URL}/wp-json/edly-wp-routes/nav-menu`,
|
|
42
|
-
// "https://venus.discover.multitenantsdev.edly.io/wp-json/edly-wp-routes/nav-menu",
|
|
43
|
-
{
|
|
36
|
+
const response = await fetch(`${config.MARKETING_SITE_BASE_URL}/wp-json/edly-wp-routes/nav-menu`, {
|
|
44
37
|
credentials: 'include'
|
|
45
38
|
});
|
|
46
39
|
if (!response.ok) {
|
|
@@ -52,15 +45,14 @@ const HeaderWidget = () => {
|
|
|
52
45
|
ADD_ATTR: ['target', 'class']
|
|
53
46
|
});
|
|
54
47
|
setHeaderData(cleanHtml);
|
|
55
|
-
} else {
|
|
56
|
-
console.error('Data object is not json');
|
|
57
48
|
}
|
|
58
49
|
} catch (error) {
|
|
50
|
+
// eslint-disable-next-line no-console
|
|
59
51
|
console.error(error);
|
|
60
52
|
}
|
|
61
53
|
};
|
|
62
54
|
fetchData();
|
|
63
|
-
}, []);
|
|
55
|
+
}, [config]);
|
|
64
56
|
const toggleMenu = () => {
|
|
65
57
|
setIsOpen(!isOpen);
|
|
66
58
|
};
|
|
@@ -91,7 +83,9 @@ const HeaderWidget = () => {
|
|
|
91
83
|
decoding: "async"
|
|
92
84
|
})
|
|
93
85
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("header", {
|
|
94
|
-
className: "site-header"
|
|
86
|
+
className: "site-header"
|
|
87
|
+
// eslint-disable-next-line react/no-danger
|
|
88
|
+
,
|
|
95
89
|
dangerouslySetInnerHTML: {
|
|
96
90
|
__html: headerData
|
|
97
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_frontendPlatform","require","_react","_dompurify","_interopRequireDefault","_jsxRuntime","e","__esModule","default","HeaderWidget","headerData","setHeaderData","useState","isOpen","setIsOpen","WIDTH","isMobile","setIsMobile","window","innerWidth","config","getConfig","useEffect","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_frontendPlatform","require","_react","_dompurify","_interopRequireDefault","_jsxRuntime","e","__esModule","default","HeaderWidget","headerData","setHeaderData","useState","isOpen","setIsOpen","WIDTH","isMobile","setIsMobile","window","innerWidth","config","getConfig","useEffect","document","documentElement","style","setProperty","COLORS","primary","handleResize","addEventListener","removeEventListener","removeProperty","fetchData","response","fetch","MARKETING_SITE_BASE_URL","credentials","ok","Error","status","jsonData","json","cleanHtml","DOMPurify","sanitize","ADD_ATTR","error","console","toggleMenu","jsxs","className","children","jsx","type","onClick","background","border","cursor","fontSize","href","width","height","src","LOGO_URL","alt","decoding","dangerouslySetInnerHTML","__html","_default","exports"],"sources":["../../src/HeaderWidget/index.jsx"],"sourcesContent":["import { getConfig } from '@edx/frontend-platform';\nimport { useEffect, useState } from 'react';\nimport DOMPurify from 'dompurify';\nimport './main.scss';\n\nconst HeaderWidget = () => {\n const [headerData, setHeaderData] = useState('');\n const [isOpen, setIsOpen] = useState(false);\n const WIDTH = 1230;\n const [isMobile, setIsMobile] = useState(window.innerWidth < WIDTH);\n const config = getConfig();\n\n useEffect(() => {\n document.documentElement.style.setProperty(\n '--primary-color',\n config?.COLORS?.primary || '#de2025',\n );\n\n const handleResize = () => {\n setIsMobile(window.innerWidth < WIDTH);\n if (window.innerWidth >= WIDTH) {\n setIsOpen(false);\n }\n };\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n document.documentElement.style.removeProperty('--primary-color');\n };\n }, [config?.COLORS]);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetch(\n `${config.MARKETING_SITE_BASE_URL}/wp-json/edly-wp-routes/nav-menu`,\n { credentials: 'include' },\n );\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const jsonData = await response.json();\n\n if (typeof jsonData === 'object') {\n const cleanHtml = DOMPurify.sanitize(jsonData.primary, {\n ADD_ATTR: ['target', 'class'],\n });\n setHeaderData(cleanHtml);\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n };\n\n fetchData();\n }, [config]);\n\n const toggleMenu = () => {\n setIsOpen(!isOpen);\n };\n\n return (\n <div className={`shadow-sm ${isMobile ? 'header-frame' : ''}`}>\n {isMobile && (\n <button\n className=\"menuOpner\"\n type=\"button\"\n onClick={toggleMenu}\n style={{\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontSize: '24px',\n }}\n >\n {isOpen ? '✖' : '☰'}\n </button>\n )}\n <div\n className={`header-holder ${isMobile ? 'mobile-menu' : ''} ${\n isOpen ? '' : 'mobile-hide'\n }`}\n >\n <a href=\"/\" className=\"custom-logo-link\">\n <img\n width=\"216\"\n height=\"140\"\n src={config.LOGO_URL}\n className=\"custom-logo\"\n alt=\"Venus\"\n decoding=\"async\"\n />\n </a>\n <header\n className=\"site-header\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: headerData }}\n />\n </div>\n </div>\n );\n};\n\nexport default HeaderWidget;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getCookie = getCookie;
|
|
7
|
+
exports.setCookie = setCookie;
|
|
8
|
+
var _frontendPlatform = require("@edx/frontend-platform");
|
|
9
|
+
var _universalCookie = _interopRequireDefault(require("universal-cookie"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
const cookies = new _universalCookie.default();
|
|
12
|
+
function setCookie(cookieName, cookieValue, cookieExpiry) {
|
|
13
|
+
if (cookieName) {
|
|
14
|
+
const options = {
|
|
15
|
+
domain: (0, _frontendPlatform.getConfig)().SESSION_COOKIE_DOMAIN,
|
|
16
|
+
path: '/'
|
|
17
|
+
};
|
|
18
|
+
if (cookieExpiry) {
|
|
19
|
+
options.expires = cookieExpiry;
|
|
20
|
+
}
|
|
21
|
+
cookies.set(cookieName, cookieValue, options);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function getCookie(cookieName) {
|
|
25
|
+
return cookies.get(cookieName);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=cookies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookies.js","names":["_frontendPlatform","require","_universalCookie","_interopRequireDefault","e","__esModule","default","cookies","Cookies","setCookie","cookieName","cookieValue","cookieExpiry","options","domain","getConfig","SESSION_COOKIE_DOMAIN","path","expires","set","getCookie","get"],"sources":["../../src/utils/cookies.js"],"sourcesContent":["import { getConfig } from '@edx/frontend-platform';\nimport Cookies from 'universal-cookie';\n\nconst cookies = new Cookies();\nexport function setCookie(cookieName, cookieValue, cookieExpiry) {\n if (cookieName) {\n const options = { domain: getConfig().SESSION_COOKIE_DOMAIN, path: '/' };\n if (cookieExpiry) {\n options.expires = cookieExpiry;\n }\n cookies.set(cookieName, cookieValue, options);\n }\n}\n\nexport function getCookie(cookieName) {\n return cookies.get(cookieName);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAuC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvC,MAAMG,OAAO,GAAG,IAAIC,wBAAO,CAAC,CAAC;AACtB,SAASC,SAASA,CAACC,UAAU,EAAEC,WAAW,EAAEC,YAAY,EAAE;EAC/D,IAAIF,UAAU,EAAE;IACd,MAAMG,OAAO,GAAG;MAAEC,MAAM,EAAE,IAAAC,2BAAS,EAAC,CAAC,CAACC,qBAAqB;MAAEC,IAAI,EAAE;IAAI,CAAC;IACxE,IAAIL,YAAY,EAAE;MAChBC,OAAO,CAACK,OAAO,GAAGN,YAAY;IAChC;IACAL,OAAO,CAACY,GAAG,CAACT,UAAU,EAAEC,WAAW,EAAEE,OAAO,CAAC;EAC/C;AACF;AAEO,SAASO,SAASA,CAACV,UAAU,EAAE;EACpC,OAAOH,OAAO,CAACc,GAAG,CAACX,UAAU,CAAC;AAChC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anas_hameed/edly-saas-widget",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Frontend application template",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"repository": {
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"react": "^16.9.0 || ^17.0.0 || ^18.0.0",
|
|
46
46
|
"react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0",
|
|
47
47
|
"react-redux": "^7.2.9",
|
|
48
|
-
"
|
|
49
|
-
"
|
|
48
|
+
"react-router-dom": "^6.14.2",
|
|
49
|
+
"redux-saga": "^1.3.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@edx/browserslist-config": "^1.1.1",
|
|
@@ -61,7 +61,8 @@
|
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"dompurify": "^3.3.0",
|
|
63
63
|
"react-bootstrap": "^2.10.10",
|
|
64
|
-
"react-helmet": "^6.1.0"
|
|
64
|
+
"react-helmet": "^6.1.0",
|
|
65
|
+
"universal-cookie": "^8.0.1"
|
|
65
66
|
},
|
|
66
67
|
"directories": {
|
|
67
68
|
"doc": "docs"
|