MCPcopy
hub / github.com/wavetermdev/waveterm / getNodeIcon

Function getNodeIcon

frontend/app/treeview/treeview.tsx:179–204  ·  view source on GitHub ↗
(node: TreeNodeData, isExpanded: boolean)

Source from the content-addressed store, hash-verified

177}
178
179function getNodeIcon(node: TreeNodeData, isExpanded: boolean): string {
180 if (node.notfound || node.staterror) {
181 return "triangle-exclamation";
182 }
183 if (node.icon) {
184 return node.icon;
185 }
186 if (node.isDirectory) {
187 return isExpanded ? "folder-open" : "folder";
188 }
189 const mime = node.mimeType ?? "";
190 if (mime.startsWith("image/")) {
191 return "image";
192 }
193 if (mime === "application/pdf") {
194 return "file-pdf";
195 }
196 const extension = normalizeLabel(node).split(".").pop()?.toLocaleLowerCase();
197 if (["js", "jsx", "ts", "tsx", "go", "py", "java", "c", "cpp", "h", "hpp", "json", "yaml", "yml"].includes(extension)) {
198 return "file-code";
199 }
200 if (["md", "txt", "log"].includes(extension)) {
201 return "file-lines";
202 }
203 return "file";
204}
205
206export const TreeView = forwardRef<TreeViewRef, TreeViewProps>((props, ref) => {
207 const {

Callers 1

treeview.tsxFile · 0.85

Calls 2

normalizeLabelFunction · 0.85
popMethod · 0.80

Tested by

no test coverage detected