import { FileText, FolderOpen } from 'lucide-react'; import type { WorkspaceNode } from './types'; import { isPreviewableWorkspaceFile, workspaceFileAction } from './utils'; interface WorkspaceEntriesLabels { download: string; fileNotPreviewable: string; folder: string; goUp: string; goUpTitle: string; openFolderTitle: string; previewTitle: string; } interface WorkspaceEntriesListProps { nodes: WorkspaceNode[]; workspaceParentPath: string | null; selectedBotId: string; workspaceFileLoading: boolean; workspaceDownloadExtensionSet: ReadonlySet; labels: WorkspaceEntriesLabels; onLoadWorkspaceTree: (botId: string, path?: string) => Promise | void; onOpenWorkspaceFilePreview: (path: string) => Promise | void; onShowWorkspaceHoverCard: (node: WorkspaceNode, anchor: HTMLElement) => void; onHideWorkspaceHoverCard: () => void; } export function WorkspaceEntriesList({ nodes, workspaceParentPath, selectedBotId, workspaceFileLoading, workspaceDownloadExtensionSet, labels, onLoadWorkspaceTree, onOpenWorkspaceFilePreview, onShowWorkspaceHoverCard, onHideWorkspaceHoverCard, }: WorkspaceEntriesListProps) { return ( <> {workspaceParentPath !== null ? ( ) : null} {nodes.map((node) => { const key = `${node.type}:${node.path}`; if (node.type === 'dir') { return ( ); } const previewable = isPreviewableWorkspaceFile(node, workspaceDownloadExtensionSet); const downloadOnlyFile = workspaceFileAction(node.path, workspaceDownloadExtensionSet) === 'download'; return ( ); })} ); }