import React from 'react'; import { useTranslation } from 'react-i18next'; import { ChevronRight, Folder, FolderOpen, Music } from 'lucide-react'; import type { SubsonicDirectoryEntry } from '@/lib/api/subsonicTypes'; import type { Track } from '@/lib/media/trackTypes'; import { folderBrowserHasKeyModifiers, isFolderBrowserArrowKey, type Column, } from '../../utils/componentHelpers/folderBrowserHelpers'; interface Props { col: Column; colIndex: number; isCompact: boolean; filterValue: string; filterVisible: boolean; filteredItems: SubsonicDirectoryEntry[]; keyboardRowIndex: number | null; contextRowIndex: number | null; currentTrack: Track | null; isPlaying: boolean; isSelectedPathForCurrentTrack: boolean; playingPathIds: string[]; registerFilterInput: (el: HTMLInputElement | null) => void; onFilterFocus: () => void; onFilterBlur: () => void; onFilterEscape: () => void; onFilterArrowDown: () => void; onFilterChange: (value: string) => void; onRowClick: (item: SubsonicDirectoryEntry, rowIndex: number) => void; onRowContextMenu: ( e: React.MouseEvent, rowIndex: number, col: Column, item: SubsonicDirectoryEntry, ) => void; } export default function FolderBrowserColumn({ col, colIndex, isCompact, filterValue, filterVisible, filteredItems, keyboardRowIndex, contextRowIndex, currentTrack, isPlaying, isSelectedPathForCurrentTrack, playingPathIds, registerFilterInput, onFilterFocus, onFilterBlur, onFilterEscape, onFilterArrowDown, onFilterChange, onRowClick, onRowContextMenu, }: Props) { const { t } = useTranslation(); return (