MCPcopy Create free account
hub / github.com/Snapchat/dagger-browser / NodeLink

Function NodeLink

browser/src/components/NodeLink.tsx:27–71  ·  view source on GitHub ↗
({
  node,
  onSelect,
  weight = undefined,
  scoped = false,
  kind
}: Props)

Source from the content-addressed store, hash-verified

25}
26
27const 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}&nbsp;</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 &nbsp; {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
73export default NodeLink;

Callers

nothing calls this directly

Calls 2

displayNameForKeyMethod · 0.95
getDisplayNameFunction · 0.70

Tested by

no test coverage detected