@@ -17,6 +17,7 @@ import { useEffect, useState } from "react";
1717import { useCompletionState } from "@/lib/hooks/useCompletionState" ;
1818import JsonView from "./JsonView" ;
1919import { UriTemplate } from "@modelcontextprotocol/sdk/shared/uriTemplate.js" ;
20+ import IconDisplay , { WithIcons } from "./IconDisplay" ;
2021
2122const ResourcesTab = ( {
2223 resources,
@@ -129,7 +130,10 @@ const ResourcesTab = ({
129130 } }
130131 renderItem = { ( resource ) => (
131132 < div className = "flex items-center w-full" >
132- < FileText className = "w-4 h-4 mr-2 flex-shrink-0 text-gray-500" />
133+ < IconDisplay icons = { ( resource as WithIcons ) . icons } size = "sm" />
134+ { ! ( resource as WithIcons ) . icons && (
135+ < FileText className = "w-4 h-4 mr-2 flex-shrink-0 text-gray-500" />
136+ ) }
133137 < span className = "flex-1 truncate" title = { resource . uri . toString ( ) } >
134138 { resource . name }
135139 </ span >
@@ -159,7 +163,10 @@ const ResourcesTab = ({
159163 } }
160164 renderItem = { ( template ) => (
161165 < div className = "flex items-center w-full" >
162- < FileText className = "w-4 h-4 mr-2 flex-shrink-0 text-gray-500" />
166+ < IconDisplay icons = { ( template as WithIcons ) . icons } size = "sm" />
167+ { ! ( template as WithIcons ) . icons && (
168+ < FileText className = "w-4 h-4 mr-2 flex-shrink-0 text-gray-500" />
169+ ) }
163170 < span className = "flex-1 truncate" title = { template . uriTemplate } >
164171 { template . name }
165172 </ span >
@@ -175,16 +182,26 @@ const ResourcesTab = ({
175182
176183 < div className = "bg-card border border-border rounded-lg shadow" >
177184 < div className = "p-4 border-b border-gray-200 dark:border-border flex justify-between items-center" >
178- < h3
179- className = "font-semibold truncate"
180- title = { selectedResource ?. name || selectedTemplate ?. name }
181- >
182- { selectedResource
183- ? selectedResource . name
184- : selectedTemplate
185- ? selectedTemplate . name
186- : "Select a resource or template" }
187- </ h3 >
185+ < div className = "flex items-center gap-2 truncate" >
186+ { ( selectedResource || selectedTemplate ) && (
187+ < IconDisplay
188+ icons = {
189+ ( ( selectedResource || selectedTemplate ) as WithIcons ) . icons
190+ }
191+ size = "md"
192+ />
193+ ) }
194+ < h3
195+ className = "font-semibold truncate"
196+ title = { selectedResource ?. name || selectedTemplate ?. name }
197+ >
198+ { selectedResource
199+ ? selectedResource . name
200+ : selectedTemplate
201+ ? selectedTemplate . name
202+ : "Select a resource or template" }
203+ </ h3 >
204+ </ div >
188205 { selectedResource && (
189206 < div className = "flex row-auto gap-1 justify-end w-2/5" >
190207 { resourceSubscriptionsSupported &&
0 commit comments