"use client" import { cn } from "@/lib/utils" import { ChevronRight, File, Folder, FolderOpen } from "lucide-react" import * as React from "react" interface FileItem { id: string name: string type: "file" | "folder" path?: string items?: FileItem[] } interface FileExplorerNavProps { items: FileItem[] } export function FolderTreeComponent({ items }: FileExplorerNavProps) { const [openFolders, setOpenFolders] = React.useState>( {} ) const toggleFolder = (id: string) => { setOpenFolders((prev) => ({ ...prev, [id]: !prev[id] })) } const renderItem = (item: FileItem, level = 0) => { const isOpen = openFolders[item.id] const hasItems = item.items && item.items.length > 0 return (
{hasItems && isOpen && (
{item.items!.map((subItem) => renderItem(subItem, level + 1))}
)}
) } return (
{items.map((item) => renderItem(item))}
) }