import React from "react"; import { connect } from "react-redux"; import { FixedSizeList } from "react-window"; import { AutoSizer } from "react-virtualized"; import { makeStyles } from "@material-ui/core/styles"; import List from "@material-ui/core/List"; import ListItem from "@material-ui/core/ListItem"; import ListItemText from "@material-ui/core/ListItemText"; import Collapse from "@material-ui/core/Collapse"; import ExpandLess from "@material-ui/icons/ExpandLess"; import ExpandMore from "@material-ui/icons/ExpandMore"; import Paper from "@material-ui/core/Paper"; import Box from "@material-ui/core/Box"; import { getNodeInfos } from "./redux/store"; import theme from "./theme"; import OverflowTooltip from "./OverflowTooltip"; const NodeInfo = ({ nodeInfos, node, width }) => { const useStyles = makeStyles((theme) => ({ root: { width: "100%", maxWidth: width, backgroundColor: theme.palette.background.paper, }, nested: { paddingLeft: theme.spacing(4), }, listItem: { width: width, }, })); const rowHeight = 25; const classes = useStyles(); const [openDependers, setOpenDependers] = React.useState(false); const [openDependencies, setOpenDependencies] = React.useState(false); const [openNodeAttribs, setOpenNodeAttribs] = React.useState(false); const [nodeInfo, setNodeInfo] = React.useState({ id: 0, node: "test/test.so", name: "test", attribs: [{ name: "test", value: "test" }], dependers: [{ node: "test/test3.so", symbols: [] }], dependencies: [{ node: "test/test2.so", symbols: [] }], }); React.useEffect(() => { setNodeInfo(nodeInfos.filter((nodeInfo) => nodeInfo.node == node.node)[0]); }, [nodeInfos]); function renderAttribRow({ index, style, data }) { return ( ); } function renderNodeRow({ index, style, data }) { return ( ); } function listHeight(numItems) { const size = numItems * rowHeight; if (size > 350) { return 350; } return size; } if (nodeInfo == undefined) { return ""; } return ( setOpenNodeAttribs(!openNodeAttribs)}> {openNodeAttribs ? : } {({ height, width }) => ( {renderAttribRow} )} setOpenDependers(!openDependers)}> {openDependers ? : } {({ height, width }) => ( {renderNodeRow} )} setOpenDependencies(!openDependencies)}> {openDependencies ? : } {({ height, width }) => ( {renderNodeRow} )} ); }; export default connect(getNodeInfos)(NodeInfo);