({
node,
onSelect,
weight = undefined,
scoped = false,
kind
}: Props)
| 25 | } |
| 26 | |
| 27 | const NodeLink: React.FC<Props> = ({ |
| 28 | node, |
| 29 | onSelect, |
| 30 | weight = undefined, |
| 31 | scoped = false, |
| 32 | kind |
| 33 | }: Props) => { |
| 34 | const scope = node.scope ? `[${node.scope.split(".").pop()}]` : ""; |
| 35 | const displayNameHelper = new DisplayNameHelper() |
| 36 | const [copiedFullName , copyHandler ] = React.useState(false) |
| 37 | const CopiedComponent = () => { |
| 38 | useEffect(() => { |
| 39 | // component will hide after 5 seconds |
| 40 | const timer = setTimeout(() => copyHandler(false), 5000); |
| 41 | return () => clearTimeout(timer); |
| 42 | }, []); |
| 43 | return ( |
| 44 | <div className = "copiedTextLink"> |
| 45 | <span>Copied Component!</span> |
| 46 | <br/> |
| 47 | </div> |
| 48 | ); |
| 49 | } |
| 50 | return (<div className="tooltip_link"> |
| 51 | <div className="binding"> |
| 52 | <div> |
| 53 | <NodeIcon kind={kind || node.kind} /> |
| 54 | {scoped && <span className="light-text">{scope} </span>} |
| 55 | <span onClick={() => onSelect && onSelect(node.key)} >{displayNameHelper.displayNameForKey(getDisplayName(node.key))}</span> |
| 56 | <span className="tooltiptext_link" onClick={() => Copy(node.key)}> |
| 57 | <img src = {LinkImg} height = {12} width = {12} onMouseLeave = {() => copyHandler(false)} |
| 58 | onClick = {() => {copyHandler(true) |
| 59 | }}/> |
| 60 | {copiedFullName && <CopiedComponent/>} |
| 61 | {node.key} |
| 62 | </span> |
| 63 | </div> |
| 64 | <div> |
| 65 | <CodeLink link={node.key} /> |
| 66 | <NodeWeight weight={weight} /> |
| 67 | </div> |
| 68 | </div> |
| 69 | </div>); |
| 70 | |
| 71 | }; |
| 72 | |
| 73 | export default NodeLink; |
nothing calls this directly
no test coverage detected