import type { ReactNode, RefObject } from 'react'; import type { FileTreeNode as FileTreeNodeType, FileTreeViewMode } from '../types/types'; import FileTreeNode from './FileTreeNode'; type FileTreeListProps = { items: FileTreeNodeType[]; viewMode: FileTreeViewMode; expandedDirs: Set; onItemClick: (item: FileTreeNodeType) => void; renderFileIcon: (filename: string) => ReactNode; formatFileSize: (bytes?: number) => string; formatRelativeTime: (date?: string) => string; onRename?: (item: FileTreeNodeType) => void; onDelete?: (item: FileTreeNodeType) => void; onNewFile?: (path: string) => void; onNewFolder?: (path: string) => void; onCopyPath?: (item: FileTreeNodeType) => void; onDownload?: (item: FileTreeNodeType) => void; onRefresh?: () => void; // Rename state for inline editing renamingItem?: FileTreeNodeType | null; renameValue?: string; setRenameValue?: (value: string) => void; handleConfirmRename?: () => void; handleCancelRename?: () => void; renameInputRef?: RefObject; operationLoading?: boolean; }; export default function FileTreeList({ items, viewMode, expandedDirs, onItemClick, renderFileIcon, formatFileSize, formatRelativeTime, onRename, onDelete, onNewFile, onNewFolder, onCopyPath, onDownload, onRefresh, renamingItem, renameValue, setRenameValue, handleConfirmRename, handleCancelRename, renameInputRef, operationLoading, }: FileTreeListProps) { return (
{items.map((item) => ( ))}
); }