import React from "react"; import "./nodeinfobar.css"; import { NodeData } from "../../graph"; import TitleArea from "./titlearea"; import FancyScrollbar from "../fancyscrollbar"; import MediaArea from "./mediaarea"; import Neighbors from "./neighbors"; interface InfoBarProps { height: number; node: NodeData; nodeColors?: Map<string, string>; nodeClosedCallback?: () => void; nodeClickedCallback?: (node: NodeData) => void; } function NodeInfoBar({ height, node, nodeColors, nodeClosedCallback, nodeClickedCallback, }: InfoBarProps) { return ( <div className={"node-info-bar"} style={{ height }}> <div className={"node-info-bar-close-button"} onClick={nodeClosedCallback} > <p>✖</p> </div> <div className={"node-info-bar-info-area"}> <FancyScrollbar> <TitleArea name={node.name} image={node.banner} /> <MediaArea description={node.description} image={node.banner} video={node.video} references={node.references} /> </FancyScrollbar> </div> <Neighbors neighbors={node.neighbors} nodeColors={nodeColors} nodeClickedCallback={nodeClickedCallback} /> </div> ); } export default NodeInfoBar;