mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-06-06 04:55:45 +08:00
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import type { ReactNode } from 'react';
|
|
import type { FileTreeNode as FileTreeNodeType, FileTreeViewMode } from '../types/types';
|
|
import FileTreeNode from './FileTreeNode';
|
|
|
|
type FileTreeListProps = {
|
|
items: FileTreeNodeType[];
|
|
viewMode: FileTreeViewMode;
|
|
expandedDirs: Set<string>;
|
|
onItemClick: (item: FileTreeNodeType) => void;
|
|
renderFileIcon: (filename: string) => ReactNode;
|
|
formatFileSize: (bytes?: number) => string;
|
|
formatRelativeTime: (date?: string) => string;
|
|
};
|
|
|
|
export default function FileTreeList({
|
|
items,
|
|
viewMode,
|
|
expandedDirs,
|
|
onItemClick,
|
|
renderFileIcon,
|
|
formatFileSize,
|
|
formatRelativeTime,
|
|
}: FileTreeListProps) {
|
|
return (
|
|
<div>
|
|
{items.map((item) => (
|
|
<FileTreeNode
|
|
key={item.path}
|
|
item={item}
|
|
level={0}
|
|
viewMode={viewMode}
|
|
expandedDirs={expandedDirs}
|
|
onItemClick={onItemClick}
|
|
renderFileIcon={renderFileIcon}
|
|
formatFileSize={formatFileSize}
|
|
formatRelativeTime={formatRelativeTime}
|
|
/>
|
|
))}
|
|
</div>
|
|
);
|
|
}
|
|
|