mirror of
https://github.com/johndoe6345789/low-code-react-app-b.git
synced 2026-04-25 06:04:54 +00:00
40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
import { FolderOpen } from '@phosphor-icons/react'
|
|
import { ProjectFile } from '@/types/project'
|
|
import { ScrollArea } from '@/components/ui/scroll-area'
|
|
import { FileExplorerDialog } from '@/components/file-explorer/FileExplorerDialog'
|
|
import { FileExplorerList } from '@/components/file-explorer/FileExplorerList'
|
|
import fileExplorerCopy from '@/data/file-explorer.json'
|
|
|
|
interface FileExplorerProps {
|
|
files: ProjectFile[]
|
|
activeFileId: string | null
|
|
onFileSelect: (fileId: string) => void
|
|
onFileAdd: (file: ProjectFile) => void
|
|
}
|
|
|
|
export function FileExplorer({
|
|
files,
|
|
activeFileId,
|
|
onFileSelect,
|
|
onFileAdd,
|
|
}: FileExplorerProps) {
|
|
return (
|
|
<div className="h-full flex flex-col border-r border-border bg-card">
|
|
<div className="p-3 border-b border-border flex items-center justify-between">
|
|
<h3 className="font-semibold text-sm uppercase tracking-wide flex items-center gap-2">
|
|
<FolderOpen size={18} weight="duotone" />
|
|
{fileExplorerCopy.header.title}
|
|
</h3>
|
|
<FileExplorerDialog onFileAdd={onFileAdd} />
|
|
</div>
|
|
<ScrollArea className="flex-1">
|
|
<FileExplorerList
|
|
files={files}
|
|
activeFileId={activeFileId}
|
|
onFileSelect={onFileSelect}
|
|
/>
|
|
</ScrollArea>
|
|
</div>
|
|
)
|
|
}
|