mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-03-07 23:17:37 +00:00
Refactor Settings, FileTree, GitPanel, Shell, and CodeEditor components (#402)
This commit is contained in:
62
src/components/file-tree/view/FileTreeBody.tsx
Normal file
62
src/components/file-tree/view/FileTreeBody.tsx
Normal file
@@ -0,0 +1,62 @@
|
||||
import type { ReactNode } from 'react';
|
||||
import { Folder, Search } from 'lucide-react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { ScrollArea } from '../../ui/scroll-area';
|
||||
import type { FileTreeNode, FileTreeViewMode } from '../types/types';
|
||||
import FileTreeEmptyState from './FileTreeEmptyState';
|
||||
import FileTreeList from './FileTreeList';
|
||||
|
||||
type FileTreeBodyProps = {
|
||||
files: FileTreeNode[];
|
||||
filteredFiles: FileTreeNode[];
|
||||
searchQuery: string;
|
||||
viewMode: FileTreeViewMode;
|
||||
expandedDirs: Set<string>;
|
||||
onItemClick: (item: FileTreeNode) => void;
|
||||
renderFileIcon: (filename: string) => ReactNode;
|
||||
formatFileSize: (bytes?: number) => string;
|
||||
formatRelativeTime: (date?: string) => string;
|
||||
};
|
||||
|
||||
export default function FileTreeBody({
|
||||
files,
|
||||
filteredFiles,
|
||||
searchQuery,
|
||||
viewMode,
|
||||
expandedDirs,
|
||||
onItemClick,
|
||||
renderFileIcon,
|
||||
formatFileSize,
|
||||
formatRelativeTime,
|
||||
}: FileTreeBodyProps) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<ScrollArea className="flex-1 px-2 py-1">
|
||||
{files.length === 0 ? (
|
||||
<FileTreeEmptyState
|
||||
icon={Folder}
|
||||
title={t('fileTree.noFilesFound')}
|
||||
description={t('fileTree.checkProjectPath')}
|
||||
/>
|
||||
) : filteredFiles.length === 0 && searchQuery ? (
|
||||
<FileTreeEmptyState
|
||||
icon={Search}
|
||||
title={t('fileTree.noMatchesFound')}
|
||||
description={t('fileTree.tryDifferentSearch')}
|
||||
/>
|
||||
) : (
|
||||
<FileTreeList
|
||||
items={filteredFiles}
|
||||
viewMode={viewMode}
|
||||
expandedDirs={expandedDirs}
|
||||
onItemClick={onItemClick}
|
||||
renderFileIcon={renderFileIcon}
|
||||
formatFileSize={formatFileSize}
|
||||
formatRelativeTime={formatRelativeTime}
|
||||
/>
|
||||
)}
|
||||
</ScrollArea>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user