Added a lot of fixes #73

Merged
Ghost merged 12 commits from more-fixes into main 2024-01-26 00:25:58 +00:00
4 changed files with 28 additions and 17 deletions
Showing only changes of commit 2000c1444a - Show all commits

View File

@@ -153,8 +153,6 @@ export default function Client() {
setSnackbarOpen(false); setSnackbarOpen(false);
}; };
console.log("entity", entity);
if (services_loading) return <Skeleton height={500} />; if (services_loading) return <Skeleton height={500} />;
if (!services) return <Alert severity="error">Client not found</Alert>; if (!services) return <Alert severity="error">Client not found</Alert>;

View File

@@ -1,7 +1,7 @@
import { getGroupColor, sanitizeDID } from "@/utils/helpers"; import { getGroupColor, sanitizeDID } from "@/utils/helpers";
export const generateMermaidString = (data: any) => { export const generateMermaidString = (data: any) => {
if (!data) return ""; if (!data || !data.length) return "";
let mermaidString = "sequenceDiagram\n"; let mermaidString = "sequenceDiagram\n";
const participantDetails = new Map(); const participantDetails = new Map();

View File

@@ -43,32 +43,45 @@ const SequenceDiagram = () => {
swrKey: eventMessagesKeyFunc, swrKey: eventMessagesKeyFunc,
} = useGetAllEventmessages(); } = useGetAllEventmessages();
const mermaidRef: any = useRef(null);
const [scale, setScale] = useState(1); const [scale, setScale] = useState(1);
const [openFilters, setOpenFilters] = useState(false); const [openFilters, setOpenFilters] = useState(false);
const [sequenceNr, setSequenceNr] = useState(""); const [sequenceNr, setSequenceNr] = useState("");
const hasData = eventMessagesData?.data;
const mermaidRef: any = useRef(null);
const hasData = eventMessagesData?.data && eventMessagesData?.data.length > 0;
const mermaidString = generateMermaidString(eventMessagesData?.data); const mermaidString = generateMermaidString(eventMessagesData?.data);
const allEventMessages = extractAllEventMessages(eventMessagesData?.data); const allEventMessages = extractAllEventMessages(eventMessagesData?.data);
const dataDependency = JSON.stringify(hasData ? eventMessagesData?.data : "");
useEffect(() => { useEffect(() => {
if (!loadingEventMessages && hasData) if (!loadingEventMessages && hasData) {
mermaid.initialize({ if (!mermaidRef.current.getAttribute("data-processed")) {
startOnLoad: false, mermaid.initialize({
securityLevel: "loose", startOnLoad: false,
sequence: { securityLevel: "loose",
mirrorActors: true, sequence: {
showSequenceNumbers: true, mirrorActors: true,
}, showSequenceNumbers: true,
}); },
});
}
}
if (mermaidRef.current) { if (mermaidRef.current) {
mermaidRef.current.innerHTML = mermaidString; mermaidRef.current.innerHTML = mermaidString;
mermaid.init(undefined, mermaidRef.current); mermaid.init(undefined, mermaidRef.current);
} }
}, [loadingEventMessages, hasData, mermaidString]);
return () => {
if (mermaidRef.current) {
// By removing the 'data-processed' attribute, we ensure Mermaid will process the diagram again
mermaidRef.current.removeAttribute("data-processed");
// Reset the innerHTML to clear the diagram
mermaidRef.current.innerHTML = "";
}
};
}, [dataDependency]);
useEffect(() => { useEffect(() => {
if (mermaidRef.current) { if (mermaidRef.current) {

View File

@@ -93,7 +93,7 @@ export function Sidebar(props: SidebarProps) {
const menuEntityEntries: MenuEntry[] = React.useMemo(() => { const menuEntityEntries: MenuEntry[] = React.useMemo(() => {
if (entityData) { if (entityData) {
return Array.isArray(entityData.data) return Array.isArray(entityData.data)
? entityData.data.map((entity) => ({ ? entityData.data.map((entity: any) => ({
icon: <PersonIcon />, icon: <PersonIcon />,
label: entity.name, label: entity.name,
to: entity.name, to: entity.name,