import { Link } from 'react-router-dom'
import { Pencil, Globe, Lock, Trash2, GitBranch, FileText, Wrench } from 'lucide-react'
import type { TreeListItem } from '@/types'
import { TagBadges } from '@/components/common/TagBadges'
import { AddToFolderMenu } from './AddToFolderMenu'
import { cn } from '@/lib/utils'
import { usePermissions } from '@/hooks/usePermissions'
interface TreeGridViewProps {
trees: TreeListItem[]
onStartSession: (treeId: string, treeType?: string) => void
onTagClick: (tag: string) => void
onFolderCreated: (parentId?: string | null) => void
onDeleteTree: (tree: TreeListItem) => void
onForkTree?: (treeId: string) => void
}
export function TreeGridView({
trees,
onStartSession,
onTagClick,
onFolderCreated,
onDeleteTree,
onForkTree,
}: TreeGridViewProps) {
const { canEditTree, canDeleteTree } = usePermissions()
return (
{trees.map((tree) => (
{tree.name}
{tree.status === 'draft' && (
Draft
)}
{tree.tree_type === 'maintenance' && (
Maintenance
)}
{tree.is_public ? (
) : (
)}
{tree.category_info && (
{tree.category_info.name}
)}
{tree.description || 'No description available'}
{/* Tags */}
{tree.tags && tree.tags.length > 0 && (
)}
v{tree.version} ยท {tree.usage_count} uses
{onForkTree && (
)}
{canEditTree({ author_id: tree.author_id, account_id: tree.account_id }) && (
)}
{canDeleteTree() && (
)}
))}
)
}