'use client' import React, { useState } from 'react' import { ChevronRight, MoreHorizontal } from 'lucide-react' import { Checkbox } from '../checkbox' import { Button } from '../button' import { cn } from '../../../utils/cn' import { FileIcon } from './file-icon' import { FileManagerContextMenu } from './file-manager-context-menu' import type { FileManagerTableRowProps } from './types' export function FileManagerTableRow({ file, isSelected = false, showCheckbox = true, showPath = false, onSelect, onClick, onDoubleClick, onContextMenu, onActionClick, className }: FileManagerTableRowProps) { const [contextMenuOpen, setContextMenuOpen] = useState(false) const handleRowClick = (e: React.MouseEvent) => { // Don't trigger row click if clicking on interactive elements if ((e.target as HTMLElement).closest('[data-no-row-click]')) { return } onClick?.() } const handleCheckboxChange = (checked: boolean) => { onSelect?.(checked) } const handleContextAction = (action: any) => { onActionClick?.(action) setContextMenuOpen(false) } const fileExtension = file.type === 'file' ? file.name.split('.').pop() : undefined return (