MCPcopy Create free account
hub / github.com/Linen-dev/linen.dev / render

Function render

apps/web/ui/Message/index.tsx:89–177  ·  view source on GitHub ↗
(node: any)

Source from the content-addressed store, hash-verified

87 const tree = transform(parse(input));
88
89 function render(node: any): React.ReactNode {
90 switch (node.type) {
91 case 'root':
92 return (node as RootNode).children.map(render);
93 case 'bold':
94 return (
95 <strong key={node.cid}>
96 {(node as BoldNode).children.map(render)}
97 </strong>
98 );
99 case 'italic':
100 return (
101 <em className={styles.italic} key={node.cid}>
102 {(node as ItalicNode).children.map(render)}
103 </em>
104 );
105 case 'strike':
106 return (
107 <del key={node.cid}>{(node as StrikeNode).children.map(render)}</del>
108 );
109 case 'quote':
110 return (
111 <Quote key={node.cid}>
112 {(node as QuoteNode).children.map(render)}
113 </Quote>
114 );
115 case 'header':
116 return (
117 <Header depth={node.depth} key={node.cid}>
118 {(node as HeaderNode).children.map(render)}
119 </Header>
120 );
121 case 'text':
122 return <Text key={node.cid} value={(node as TextNode).value} />;
123 case 'user':
124 return (
125 <Mention
126 tag="@"
127 key={node.cid}
128 value={(node as UserNode).id}
129 mentions={mentions}
130 />
131 );
132 case 'list':
133 return (
134 <List key={node.cid} ordered={node.ordered}>
135 {node.children.map(render)}
136 </List>
137 );
138 case 'item':
139 return <li key={node.cid}>{node.children.map(render)}</li>;
140 case 'signal':
141 return (
142 <Mention
143 tag="!"
144 key={node.cid}
145 value={(node as UserNode).id}
146 mentions={mentions}

Callers 15

index.test.tsxFile · 0.85
index.test.tsxFile · 0.85
index.test.tsxFile · 0.85
index.test.tsxFile · 0.85
index.spec.tsxFile · 0.85
index.test.tsxFile · 0.85
index.test.tsxFile · 0.85
index.spec.tsxFile · 0.85
index.test.tsxFile · 0.85
index.spec.tsxFile · 0.85
index.test.tsxFile · 0.85
index.spec.tsxFile · 0.85

Calls 1

mapMethod · 0.80

Tested by

no test coverage detected