@anas_hameed/edly-saas-widget 0.2.44 → 0.2.46

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.
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DiscussionSidebarWidget = void 0;
7
+ var _react = require("react");
8
+ /**
9
+ * Closes the discussion/notifications sidebar by default on course pages.
10
+ * Works for both old sidebar (data-testid="sidebar-DISCUSSIONS") and
11
+ * new sidebar (data-testid="sidebar-DISCUSSIONS_NOTIFICATIONS").
12
+ * Renders nothing — uses MutationObserver to click the trigger once on mount.
13
+ */
14
+ const DiscussionSidebarWidget = () => {
15
+ (0, _react.useEffect)(() => {
16
+ const isCoursePage = /\/learning\/course\//.test(window.location.pathname);
17
+ if (!isCoursePage) {
18
+ return undefined;
19
+ }
20
+ const closeSidebar = () => {
21
+ // new sidebar
22
+ const newSidebar = document.querySelector('[data-testid="sidebar-DISCUSSIONS_NOTIFICATIONS"]');
23
+ if (newSidebar && !newSidebar.classList.contains('d-none')) {
24
+ const triggerBtn = document.querySelector('button[aria-label="Show sidebar tray"]');
25
+ if (triggerBtn) {
26
+ triggerBtn.click();
27
+ return true;
28
+ }
29
+ }
30
+
31
+ // old sidebar
32
+ const oldSidebar = document.querySelector('[data-testid="sidebar-DISCUSSIONS"]');
33
+ if (oldSidebar && !oldSidebar.classList.contains('d-none')) {
34
+ window.postMessage({
35
+ type: 'learning.events.sidebar.close'
36
+ }, '*');
37
+ return true;
38
+ }
39
+ return false;
40
+ };
41
+
42
+ // Try immediately in case sidebar already rendered
43
+ if (closeSidebar()) {
44
+ return undefined;
45
+ }
46
+ const observer = new MutationObserver(() => {
47
+ if (closeSidebar()) {
48
+ observer.disconnect();
49
+ }
50
+ });
51
+ observer.observe(document.body, {
52
+ childList: true,
53
+ subtree: true
54
+ });
55
+ return () => observer.disconnect();
56
+ }, []);
57
+ return null;
58
+ };
59
+ exports.DiscussionSidebarWidget = DiscussionSidebarWidget;
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","require","DiscussionSidebarWidget","useEffect","isCoursePage","test","window","location","pathname","undefined","closeSidebar","newSidebar","document","querySelector","classList","contains","triggerBtn","click","oldSidebar","postMessage","type","observer","MutationObserver","disconnect","observe","body","childList","subtree","exports"],"sources":["../../src/DiscussionSidebarWidget/index.jsx"],"sourcesContent":["import { useEffect } from 'react';\n\n/**\n * Closes the discussion/notifications sidebar by default on course pages.\n * Works for both old sidebar (data-testid=\"sidebar-DISCUSSIONS\") and\n * new sidebar (data-testid=\"sidebar-DISCUSSIONS_NOTIFICATIONS\").\n * Renders nothing — uses MutationObserver to click the trigger once on mount.\n */\nconst DiscussionSidebarWidget = () => {\n useEffect(() => {\n const isCoursePage = /\\/learning\\/course\\//.test(window.location.pathname);\n if (!isCoursePage) { return undefined; }\n\n const closeSidebar = () => {\n // new sidebar\n const newSidebar = document.querySelector('[data-testid=\"sidebar-DISCUSSIONS_NOTIFICATIONS\"]');\n if (newSidebar && !newSidebar.classList.contains('d-none')) {\n const triggerBtn = document.querySelector('button[aria-label=\"Show sidebar tray\"]');\n if (triggerBtn) {\n triggerBtn.click();\n return true;\n }\n }\n\n // old sidebar\n const oldSidebar = document.querySelector('[data-testid=\"sidebar-DISCUSSIONS\"]');\n if (oldSidebar && !oldSidebar.classList.contains('d-none')) {\n window.postMessage({ type: 'learning.events.sidebar.close' }, '*');\n return true;\n }\n\n return false;\n };\n\n // Try immediately in case sidebar already rendered\n if (closeSidebar()) { return undefined; }\n\n const observer = new MutationObserver(() => {\n if (closeSidebar()) {\n observer.disconnect();\n }\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n return () => observer.disconnect();\n }, []);\n\n return null;\n};\n\nexport { DiscussionSidebarWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;EACpC,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,YAAY,GAAG,sBAAsB,CAACC,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAAC;IAC1E,IAAI,CAACJ,YAAY,EAAE;MAAE,OAAOK,SAAS;IAAE;IAEvC,MAAMC,YAAY,GAAGA,CAAA,KAAM;MACzB;MACA,MAAMC,UAAU,GAAGC,QAAQ,CAACC,aAAa,CAAC,mDAAmD,CAAC;MAC9F,IAAIF,UAAU,IAAI,CAACA,UAAU,CAACG,SAAS,CAACC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC1D,MAAMC,UAAU,GAAGJ,QAAQ,CAACC,aAAa,CAAC,wCAAwC,CAAC;QACnF,IAAIG,UAAU,EAAE;UACdA,UAAU,CAACC,KAAK,CAAC,CAAC;UAClB,OAAO,IAAI;QACb;MACF;;MAEA;MACA,MAAMC,UAAU,GAAGN,QAAQ,CAACC,aAAa,CAAC,qCAAqC,CAAC;MAChF,IAAIK,UAAU,IAAI,CAACA,UAAU,CAACJ,SAAS,CAACC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC1DT,MAAM,CAACa,WAAW,CAAC;UAAEC,IAAI,EAAE;QAAgC,CAAC,EAAE,GAAG,CAAC;QAClE,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CAAC;;IAED;IACA,IAAIV,YAAY,CAAC,CAAC,EAAE;MAAE,OAAOD,SAAS;IAAE;IAExC,MAAMY,QAAQ,GAAG,IAAIC,gBAAgB,CAAC,MAAM;MAC1C,IAAIZ,YAAY,CAAC,CAAC,EAAE;QAClBW,QAAQ,CAACE,UAAU,CAAC,CAAC;MACvB;IACF,CAAC,CAAC;IAEFF,QAAQ,CAACG,OAAO,CAACZ,QAAQ,CAACa,IAAI,EAAE;MAAEC,SAAS,EAAE,IAAI;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;IACnE,OAAO,MAAMN,QAAQ,CAACE,UAAU,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACb,CAAC;AAACK,OAAA,CAAA1B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -34,19 +34,9 @@ const MultiSiteBannerContent = ({
34
34
  setLoading(true);
35
35
  try {
36
36
  const config = (0, _frontendPlatform.getConfig)();
37
- const response = await fetch(`${config.LMS_BASE_URL}/api/v1/user/sites/`, {
38
- method: 'POST',
39
- headers: {
40
- 'Content-Type': 'application/json'
41
- },
42
- body: JSON.stringify({
43
- email: userEmail
44
- })
45
- });
46
- const data = await response.json();
47
- const sitesArray = data.sites || [];
48
- const activeSites = sitesArray.filter(site => site.is_active && !site.is_blocked);
49
- setSites(activeSites);
37
+ const response = await fetch(`${config.LMS_BASE_URL}/api/edly_panel/v1/user_link_sites/?email=${encodeURIComponent(userEmail)}`);
38
+ const sitesData = await response.json();
39
+ setSites(sitesData.map(site => site.site_name));
50
40
  } catch (error) {
51
41
  // eslint-disable-next-line no-console
52
42
  console.error('Error fetching accessible sites:', error);
@@ -61,12 +51,12 @@ const MultiSiteBannerContent = ({
61
51
  return null;
62
52
  }
63
53
  const formatSiteNames = () => {
64
- const names = sites.map(site => site.site);
65
- if (names.length === 2) {
66
- return `${names[0]} and ${names[1]}`;
54
+ if (sites.length === 2) {
55
+ return `${sites[0]} and ${sites[1]}`;
67
56
  }
68
- const last = names.pop();
69
- return `${names.join(', ')}, and ${last}`;
57
+ const last = sites[sites.length - 1];
58
+ const rest = sites.slice(0, -1);
59
+ return `${rest.join(', ')}, and ${last}`;
70
60
  };
71
61
  const getMessageKey = () => {
72
62
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"BannerContent.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_frontendPlatform","_auth","_i18n","_paragon","_icons","_messages","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MultiSiteBannerContent","intl","email","sites","setSites","useState","loading","setLoading","useEffect","authenticatedUser","getAuthenticatedUser","authenticatedUserEmail","userEmail","fetchSites","config","getConfig","response","fetch","LMS_BASE_URL","method","headers","body","JSON","stringify","data","json","sitesArray","activeSites","filter","site","is_active","is_blocked","error","console","length","formatSiteNames","names","map","last","pop","join","getMessageKey","pathname","window","location","includes","messageKey","jsx","Alert","variant","icon","Info","className","children","formatMessage","messages","propTypes","intlShape","isRequired","PropTypes","string","defaultProps","_default","exports","injectIntl"],"sources":["../../src/MultiSiteBannerWidget/BannerContent.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Alert as ParagonAlert } from '@openedx/paragon';\nimport { Info } from '@openedx/paragon/icons';\nimport messages from './messages';\n\nconst MultiSiteBannerContent = ({ intl, email }) => {\n const [sites, setSites] = useState([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n const authenticatedUser = email ? null : getAuthenticatedUser();\n const authenticatedUserEmail = authenticatedUser?.email;\n const userEmail = email || authenticatedUserEmail;\n\n if (!userEmail) {\n setLoading(false);\n setSites([]);\n return;\n }\n\n const fetchSites = async () => {\n setLoading(true);\n try {\n const config = getConfig();\n const response = await fetch(`${config.LMS_BASE_URL}/api/v1/user/sites/`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ email: userEmail }),\n });\n const data = await response.json();\n\n const sitesArray = data.sites || [];\n const activeSites = sitesArray.filter(site => site.is_active && !site.is_blocked);\n setSites(activeSites);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error fetching accessible sites:', error);\n setSites([]);\n } finally {\n setLoading(false);\n }\n };\n\n fetchSites();\n }, [email]);\n\n if (loading || sites.length < 2) { return null; }\n\n const formatSiteNames = () => {\n const names = sites.map(site => site.site);\n if (names.length === 2) { return `${names[0]} and ${names[1]}`; }\n\n const last = names.pop();\n return `${names.join(', ')}, and ${last}`;\n };\n\n const getMessageKey = () => {\n const { pathname } = window.location;\n if (pathname.includes('/authn/reset')) {\n return 'multisite.banner.message.reset';\n }\n if (pathname === '/account/') {\n return 'multisite.banner.message.account';\n }\n return '';\n };\n\n const messageKey = getMessageKey();\n if (!messageKey) { return null; }\n\n return (\n <ParagonAlert variant=\"info\" icon={Info} className=\"mb-3\">\n <p className=\"mb-0\">\n {intl.formatMessage(messages[getMessageKey()], {\n sites: formatSiteNames(),\n })}\n </p>\n </ParagonAlert>\n );\n};\n\nMultiSiteBannerContent.propTypes = {\n intl: intlShape.isRequired,\n email: PropTypes.string,\n};\n\nMultiSiteBannerContent.defaultProps = {\n email: null,\n};\n\nexport default injectIntl(MultiSiteBannerContent);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BannerContent.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_frontendPlatform","_auth","_i18n","_paragon","_icons","_messages","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MultiSiteBannerContent","intl","email","sites","setSites","useState","loading","setLoading","useEffect","authenticatedUser","getAuthenticatedUser","authenticatedUserEmail","userEmail","fetchSites","config","getConfig","response","fetch","LMS_BASE_URL","encodeURIComponent","sitesData","json","map","site","site_name","error","console","length","formatSiteNames","last","rest","slice","join","getMessageKey","pathname","window","location","includes","messageKey","jsx","Alert","variant","icon","Info","className","children","formatMessage","messages","propTypes","intlShape","isRequired","PropTypes","string","defaultProps","_default","exports","injectIntl"],"sources":["../../src/MultiSiteBannerWidget/BannerContent.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Alert as ParagonAlert } from '@openedx/paragon';\nimport { Info } from '@openedx/paragon/icons';\nimport messages from './messages';\n\nconst MultiSiteBannerContent = ({ intl, email }) => {\n const [sites, setSites] = useState([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n const authenticatedUser = email ? null : getAuthenticatedUser();\n const authenticatedUserEmail = authenticatedUser?.email;\n const userEmail = email || authenticatedUserEmail;\n\n if (!userEmail) {\n setLoading(false);\n setSites([]);\n return;\n }\n\n const fetchSites = async () => {\n setLoading(true);\n try {\n const config = getConfig();\n const response = await fetch(`${config.LMS_BASE_URL}/api/edly_panel/v1/user_link_sites/?email=${encodeURIComponent(userEmail)}`);\n const sitesData = await response.json();\n setSites(sitesData.map(site => site.site_name));\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error fetching accessible sites:', error);\n setSites([]);\n } finally {\n setLoading(false);\n }\n };\n\n fetchSites();\n }, [email]);\n\n if (loading || sites.length < 2) { return null; }\n\n const formatSiteNames = () => {\n if (sites.length === 2) { return `${sites[0]} and ${sites[1]}`; }\n\n const last = sites[sites.length - 1];\n const rest = sites.slice(0, -1);\n return `${rest.join(', ')}, and ${last}`;\n };\n\n const getMessageKey = () => {\n const { pathname } = window.location;\n if (pathname.includes('/authn/reset')) {\n return 'multisite.banner.message.reset';\n }\n if (pathname === '/account/') {\n return 'multisite.banner.message.account';\n }\n return '';\n };\n\n const messageKey = getMessageKey();\n if (!messageKey) { return null; }\n\n return (\n <ParagonAlert variant=\"info\" icon={Info} className=\"mb-3\">\n <p className=\"mb-0\">\n {intl.formatMessage(messages[getMessageKey()], {\n sites: formatSiteNames(),\n })}\n </p>\n </ParagonAlert>\n );\n};\n\nMultiSiteBannerContent.propTypes = {\n intl: intlShape.isRequired,\n email: PropTypes.string,\n};\n\nMultiSiteBannerContent.defaultProps = {\n email: null,\n};\n\nexport default injectIntl(MultiSiteBannerContent);\n"],"mappings":"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","ignoreList":[]}
package/dist/index.js CHANGED
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "DiscussionSidebarWidget", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _DiscussionSidebarWidget.DiscussionSidebarWidget;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "EdlyLogistrationInfo", {
7
13
  enumerable: true,
8
14
  get: function () {
@@ -68,6 +74,7 @@ var _FooterWidget = _interopRequireDefault(require("./FooterWidget"));
68
74
  var _EmailCheckWidget = require("./EmailCheckWidget");
69
75
  var _EdlyLogistrationInfo = require("./EdlyLogistrationInfo");
70
76
  var _MultiSiteBannerWidget = require("./MultiSiteBannerWidget");
77
+ var _DiscussionSidebarWidget = require("./DiscussionSidebarWidget");
71
78
  var _BannerContent = _interopRequireDefault(require("./MultiSiteBannerWidget/BannerContent"));
72
79
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
73
80
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_HeaderWidget","_interopRequireDefault","require","_FooterWidget","_EmailCheckWidget","_EdlyLogistrationInfo","_MultiSiteBannerWidget","_BannerContent","e","__esModule","default"],"sources":["../src/index.js"],"sourcesContent":["import HeaderWidget from './HeaderWidget';\nimport FooterWidget from './FooterWidget';\n\nexport { HeaderWidget, FooterWidget };\nexport {\n EmailCheckWidget,\n reducer as emailCheckReducer,\n saga as emailCheckSaga,\n storeName as emailCheckStoreName,\n emailCheckComplete,\n} from './EmailCheckWidget';\nexport { EdlyLogistrationInfo } from './EdlyLogistrationInfo';\nexport { MultiSiteBannerWidget } from './MultiSiteBannerWidget';\nexport { default as MultiSiteBannerContent } from './MultiSiteBannerWidget/BannerContent';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,iBAAA,GAAAF,OAAA;AAOA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAN,sBAAA,CAAAC,OAAA;AAA0F,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_HeaderWidget","_interopRequireDefault","require","_FooterWidget","_EmailCheckWidget","_EdlyLogistrationInfo","_MultiSiteBannerWidget","_DiscussionSidebarWidget","_BannerContent","e","__esModule","default"],"sources":["../src/index.js"],"sourcesContent":["import HeaderWidget from './HeaderWidget';\nimport FooterWidget from './FooterWidget';\n\nexport { HeaderWidget, FooterWidget };\nexport {\n EmailCheckWidget,\n reducer as emailCheckReducer,\n saga as emailCheckSaga,\n storeName as emailCheckStoreName,\n emailCheckComplete,\n} from './EmailCheckWidget';\nexport { EdlyLogistrationInfo } from './EdlyLogistrationInfo';\nexport { MultiSiteBannerWidget } from './MultiSiteBannerWidget';\nexport { DiscussionSidebarWidget } from './DiscussionSidebarWidget';\nexport { default as MultiSiteBannerContent } from './MultiSiteBannerWidget/BannerContent';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,iBAAA,GAAAF,OAAA;AAOA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,wBAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAP,sBAAA,CAAAC,OAAA;AAA0F,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anas_hameed/edly-saas-widget",
3
- "version": "0.2.44",
3
+ "version": "0.2.46",
4
4
  "description": "Frontend application template",
5
5
  "main": "dist/index.js",
6
6
  "repository": {