Files
metabuilder/codegen/src/components/FileExplorer.tsx
johndoe6345789 a51130a127 feat: Add external low-code and postgres repositories
- codegen: Low-code React app with JSON-driven component system
- packagerepo: Schema-driven package repository with backend/frontend
- postgres: Next.js app with Drizzle ORM and PostgreSQL

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 16:48:52 +00:00

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>
)
}