import ChevronRightIcon from "@mui/icons-material/ChevronRight"; import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; import TreeItem from "@mui/lab/TreeItem"; import TreeView from "@mui/lab/TreeView"; import ScrollablePaperTextBox from "./ScrollablePaperTextBox"; interface JsonTreeViewProps { data: unknown; label: string; } export default function JsonTreeView({ data, label }: JsonTreeViewProps) { const renderTree = (nodes: unknown, parentId: string) => { return Object.keys(nodes).map((key, _) => { const nodeId = `${parentId}.${key}`; if (typeof nodes[key] === "object" && nodes[key] !== null) { return ( {renderTree(nodes[key], nodeId)} ); } return ( ); }); }; return ( } defaultExpandIcon={} defaultExpanded={["root"]} > {renderTree(data ?? {}, "root")} , ]} /> ); }