@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.
@@ -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;AAKA,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;MACE,OAAO,IAAI;EACf;EAEA,oBACE,IAAAjB,WAAA,CAAAmB,GAAA,EAACvB,QAAA,CAAAwB,KAAK;IAACC,EAAE,EAAC,YAAY;IAACC,SAAS,EAAC,MAAM;IAACC,OAAO,EAAC,MAAM;IAACC,IAAI,EAAEC,WAAK;IAAAC,QAAA,eAChE,IAAA1B,WAAA,CAAAmB,GAAA;MAAAO,QAAA,EAAId;IAAY,CAAI;EAAC,CAChB,CAAC;AAEZ,CAAC;AAAC,IAAAe,QAAA,GAAAC,OAAA,CAAAzB,OAAA,GAEaC,oBAAoB","ignoreList":[]}
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 with another organization. Please use a different email address.',
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 on {registeredSite}. Please login to continue.',
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}. Continuing will register you on this site with the same email address.',
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 with another organization. Please use a different email address.',\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 with this email on {registeredSite}. Please login 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}. Continuing will register you on this site with the same email address.',\n description: 'Alert message when user needs to register for specific 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,mGAAmG;IACnHC,WAAW,EAAE;EACf,CAAC;EACD,iCAAiC,EAAE;IACjCF,EAAE,EAAE,iCAAiC;IACrCC,cAAc,EAAE,4FAA4F;IAC5GC,WAAW,EAAE;EACf,CAAC;EACD,uCAAuC,EAAE;IACvCF,EAAE,EAAE,uCAAuC;IAC3CC,cAAc,EAAE,yIAAyI;IACzJC,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/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)("h3", {
82
- className: "mb-3",
83
- children: formatMessage(_messages.default['email.check.heading'])
84
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
85
- className: "mb-4 text-gray-700",
86
- children: formatMessage(_messages.default['email.check.subheading'])
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.takeEvery)(_constants.EMAIL_CHECK_REQUEST, handleEmailCheck);
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","takeEvery","EMAIL_CHECK_REQUEST","emailCheckSaga"],"sources":["../../../src/EmailCheckWidget/data/sagas.js"],"sourcesContent":["import { call, put, takeEvery } from 'redux-saga/effects';\n\nimport { checkEmailFailure, checkEmailSuccess } from './actions';\nimport { EMAIL_CHECK_REQUEST } from './constants';\nimport { checkEmailExists } from './service';\n\nexport function* handleEmailCheck(action) {\n try {\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 takeEvery(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,UAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEO,UAAUI,gBAAgBA,CAACC,MAAM,EAAE;EACxC,IAAI;IACF,MAAM;MAAEC;IAAM,CAAC,GAAGD,MAAM,CAACE,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,kBAAS,EAACC,8BAAmB,EAAEnB,gBAAgB,CAAC;AACxD;AAEe,UAAUoB,cAAcA,CAAA,EAAG;EACxC,MAAMH,eAAe,CAAC,CAAC;AACzB","ignoreList":[]}
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","MARKETING_SITE_BASE_URL","console","error","response","fetch","credentials","ok","Error","status","jsonData","json","cleanHtml","DOMPurify","sanitize","ADD_ATTR","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 if (!config?.MARKETING_SITE_BASE_URL) {\n console.error('No url found for discovery', config);\n return;\n }\n try {\n const response = await fetch(\n `${config.MARKETING_SITE_BASE_URL}/wp-json/edly-wp-routes/footer`,\n // `https://venus.discover.multitenantsdev.edly.io/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 console.error(error);\n }\n };\n\n fetchData();\n }, []);\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 dangerouslySetInnerHTML={{ __html: footerData }}\n />\n </>\n );\n};\n\nexport default FooterWidget;\n"],"mappings":"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","ignoreList":[]}
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","console","log","COLORS","document","documentElement","style","setProperty","primary","handleResize","addEventListener","removeEventListener","removeProperty","fetchData","MARKETING_SITE_BASE_URL","error","response","fetch","credentials","ok","Error","status","jsonData","json","cleanHtml","DOMPurify","sanitize","ADD_ATTR","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 console.log('color: ', config.COLORS);\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 if (!config?.MARKETING_SITE_BASE_URL) {\n console.error('No url found for discovery', config);\n return;\n }\n try {\n const response = await fetch(\n `${config.MARKETING_SITE_BASE_URL}/wp-json/edly-wp-routes/nav-menu`,\n // \"https://venus.discover.multitenantsdev.edly.io/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 } else {\n console.error('Data object is not json');\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n fetchData();\n }, []);\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 dangerouslySetInnerHTML={{ __html: headerData }}\n />\n </div>\n </div>\n );\n};\n\nexport default HeaderWidget;\n"],"mappings":"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","ignoreList":[]}
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.1.9",
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
- "redux-saga": "^1.3.0",
49
- "react-router-dom": "^6.14.2"
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"