@anas_hameed/edly-saas-widget 0.2.54 → 0.2.55
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.
|
@@ -14,26 +14,22 @@ const DiscussionSidebarWidget = () => {
|
|
|
14
14
|
}
|
|
15
15
|
let rafId;
|
|
16
16
|
const closeDiscussions = () => {
|
|
17
|
-
|
|
18
|
-
// the message listener in SidebarBase) has run before we post.
|
|
17
|
+
cancelAnimationFrame(rafId);
|
|
19
18
|
rafId = requestAnimationFrame(() => {
|
|
20
19
|
window.postMessage({
|
|
21
20
|
type: 'learning.events.sidebar.close'
|
|
22
21
|
}, window.location.origin);
|
|
23
22
|
});
|
|
24
23
|
};
|
|
25
|
-
|
|
26
|
-
// The discussions iframe is the definitive signal that the sidebar
|
|
27
|
-
// is mounted and its message listener is registered.
|
|
28
24
|
if (document.querySelector(DISCUSSIONS_IFRAME_SELECTOR)) {
|
|
29
25
|
closeDiscussions();
|
|
30
|
-
return () => cancelAnimationFrame(rafId);
|
|
31
26
|
}
|
|
32
27
|
|
|
33
|
-
//
|
|
28
|
+
// Stay alive across client-side navigations (next/prev unit).
|
|
29
|
+
// SidebarContextProvider resets hideDiscussionbar on each unitId change,
|
|
30
|
+
// re-mounting the iframe — observer catches it and closes again.
|
|
34
31
|
const observer = new MutationObserver(() => {
|
|
35
32
|
if (document.querySelector(DISCUSSIONS_IFRAME_SELECTOR)) {
|
|
36
|
-
observer.disconnect();
|
|
37
33
|
closeDiscussions();
|
|
38
34
|
}
|
|
39
35
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","require","COURSE_PAGE_PATTERN","DISCUSSIONS_IFRAME_SELECTOR","DiscussionSidebarWidget","useEffect","test","window","location","pathname","undefined","rafId","closeDiscussions","requestAnimationFrame","postMessage","type","origin","document","querySelector","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","require","COURSE_PAGE_PATTERN","DISCUSSIONS_IFRAME_SELECTOR","DiscussionSidebarWidget","useEffect","test","window","location","pathname","undefined","rafId","closeDiscussions","cancelAnimationFrame","requestAnimationFrame","postMessage","type","origin","document","querySelector","observer","MutationObserver","observe","body","childList","subtree","disconnect","exports"],"sources":["../../src/DiscussionSidebarWidget/index.jsx"],"sourcesContent":["import { useEffect } from 'react';\n\nconst COURSE_PAGE_PATTERN = /\\/learning\\/(course|preview\\/course)\\/[^/]+\\/[^/]+/;\nconst DISCUSSIONS_IFRAME_SELECTOR = 'iframe[src*=\"inContextSidebar\"]';\n\nconst DiscussionSidebarWidget = () => {\n useEffect(() => {\n if (!COURSE_PAGE_PATTERN.test(window.location.pathname)) { return undefined; }\n\n let rafId;\n\n const closeDiscussions = () => {\n cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(() => {\n window.postMessage({ type: 'learning.events.sidebar.close' }, window.location.origin);\n });\n };\n\n if (document.querySelector(DISCUSSIONS_IFRAME_SELECTOR)) {\n closeDiscussions();\n }\n\n // Stay alive across client-side navigations (next/prev unit).\n // SidebarContextProvider resets hideDiscussionbar on each unitId change,\n // re-mounting the iframe — observer catches it and closes again.\n const observer = new MutationObserver(() => {\n if (document.querySelector(DISCUSSIONS_IFRAME_SELECTOR)) {\n closeDiscussions();\n }\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n\n return () => {\n observer.disconnect();\n cancelAnimationFrame(rafId);\n };\n }, []);\n\n return null;\n};\n\nexport { DiscussionSidebarWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,mBAAmB,GAAG,oDAAoD;AAChF,MAAMC,2BAA2B,GAAG,iCAAiC;AAErE,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;EACpC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACH,mBAAmB,CAACI,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAAC,EAAE;MAAE,OAAOC,SAAS;IAAE;IAE7E,IAAIC,KAAK;IAET,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;MAC7BC,oBAAoB,CAACF,KAAK,CAAC;MAC3BA,KAAK,GAAGG,qBAAqB,CAAC,MAAM;QAClCP,MAAM,CAACQ,WAAW,CAAC;UAAEC,IAAI,EAAE;QAAgC,CAAC,EAAET,MAAM,CAACC,QAAQ,CAACS,MAAM,CAAC;MACvF,CAAC,CAAC;IACJ,CAAC;IAED,IAAIC,QAAQ,CAACC,aAAa,CAAChB,2BAA2B,CAAC,EAAE;MACvDS,gBAAgB,CAAC,CAAC;IACpB;;IAEA;IACA;IACA;IACA,MAAMQ,QAAQ,GAAG,IAAIC,gBAAgB,CAAC,MAAM;MAC1C,IAAIH,QAAQ,CAACC,aAAa,CAAChB,2BAA2B,CAAC,EAAE;QACvDS,gBAAgB,CAAC,CAAC;MACpB;IACF,CAAC,CAAC;IAEFQ,QAAQ,CAACE,OAAO,CAACJ,QAAQ,CAACK,IAAI,EAAE;MAAEC,SAAS,EAAE,IAAI;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;IAEnE,OAAO,MAAM;MACXL,QAAQ,CAACM,UAAU,CAAC,CAAC;MACrBb,oBAAoB,CAACF,KAAK,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACb,CAAC;AAACgB,OAAA,CAAAvB,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|