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);