import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Button } from "@/components/ui/button"; import { TabsContent } from "@/components/ui/tabs"; import { ListResourcesResult, Resource } from "@modelcontextprotocol/sdk/types.js"; import { AlertCircle, ChevronRight, FileText, RefreshCw } from "lucide-react"; import ListPane from "./ListPane"; const ResourcesTab = ({ resources, listResources, readResource, selectedResource, setSelectedResource, resourceContent, nextCursor, error, }: { resources: Resource[]; listResources: () => void; readResource: (uri: string) => void; selectedResource: Resource | null; setSelectedResource: (resource: Resource) => void; resourceContent: string; nextCursor: ListResourcesResult["nextCursor"]; error: string | null; }) => ( { setSelectedResource(resource); readResource(resource.uri); }} renderItem={(resource) => (
{resource.name}
)} title="Resources" buttonText={nextCursor ? "List More Resources" : "List Resources"} isButtonDisabled={!nextCursor && resources.length > 0} />

{selectedResource ? selectedResource.name : "Select a resource"}

{selectedResource && ( )}
{error ? ( Error {error} ) : selectedResource ? (
            {resourceContent}
          
) : ( Select a resource from the list to view its contents )}
); export default ResourcesTab;