Adding Consume Functionality #74

Merged
Ghost merged 11 commits from consume-functionality into main 2024-01-29 18:38:28 +00:00
Showing only changes of commit 8d03ec0feb - Show all commits

View File

@@ -55,9 +55,13 @@ const SequenceDiagram = () => {
const dataDependency = JSON.stringify(hasData ? eventMessagesData?.data : ""); const dataDependency = JSON.stringify(hasData ? eventMessagesData?.data : "");
useEffect(() => { useEffect(() => {
const currentMermaidRef = mermaidRef?.current;
if (!loadingEventMessages && hasData) { if (!loadingEventMessages && hasData) {
// check for the absence of this attribute to render the diagram if (
if (!mermaidRef.current.getAttribute("data-processed")) { currentMermaidRef &&
!currentMermaidRef.getAttribute("data-processed")
) {
mermaid.initialize({ mermaid.initialize({
startOnLoad: false, startOnLoad: false,
securityLevel: "loose", securityLevel: "loose",
@@ -67,21 +71,19 @@ const SequenceDiagram = () => {
}, },
}); });
} }
}
if (mermaidRef.current) { if (currentMermaidRef) {
mermaidRef.current.innerHTML = mermaidString; currentMermaidRef.innerHTML = mermaidString;
mermaid.init(undefined, mermaidRef.current); mermaid.init(undefined, currentMermaidRef);
}
} }
return () => { return () => {
if (mermaidRef.current) { if (currentMermaidRef) {
// By removing the 'data-processed' attribute, we ensure Mermaid will process the diagram again currentMermaidRef.removeAttribute("data-processed");
mermaidRef.current.removeAttribute("data-processed"); currentMermaidRef.innerHTML = "";
// Reset the innerHTML to clear the diagram
mermaidRef.current.innerHTML = "";
} }
}; };
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [dataDependency]); }, [dataDependency]);
useEffect(() => { useEffect(() => {