import React from 'react'; import { useTranslation } from 'react-i18next'; import { ListPlus, Play, SlidersHorizontal, X } from 'lucide-react'; import type { SubsonicSong } from '../../api/subsonicTypes'; import { usePlayerStore } from '../../store/playerStore'; import { songToTrack } from '../../utils/songToTrack'; import GenreFilterBar from '../GenreFilterBar'; interface Props { visibleSongs: SubsonicSong[]; songs: SubsonicSong[]; selectedArtist: string | null; setSelectedArtist: React.Dispatch>; selectedGenres: string[]; setSelectedGenres: React.Dispatch>; yearRange: [number, number]; setYearRange: React.Dispatch>; showFilters: boolean; setShowFilters: React.Dispatch>; setSortKey: React.Dispatch>; setSortClickCount: React.Dispatch>; playTrack: ReturnType['playTrack']; enqueue: ReturnType['enqueue']; starredOverrides: Record; minYear: number; currentYear: number; } export default function FavoritesSongsSectionHeader({ visibleSongs, songs, selectedArtist, setSelectedArtist, selectedGenres, setSelectedGenres, yearRange, setYearRange, showFilters, setShowFilters, setSortKey, setSortClickCount, playTrack, enqueue, starredOverrides, minYear, currentYear, }: Props) { const { t } = useTranslation(); return (
{/* Title Row with showing X of Y indicator */}

{t('favorites.songs')}

{(selectedArtist || selectedGenres.length > 0 || yearRange[0] !== minYear || yearRange[1] !== currentYear) && ( {selectedArtist ? t('favorites.showingFiltered', { filtered: visibleSongs.length, total: songs.filter(s => starredOverrides[s.id] !== false).length, artist: selectedArtist }) : t('favorites.showingCount', { filtered: visibleSongs.length, total: songs.filter(s => starredOverrides[s.id] !== false).length })} )}
{/* Action Buttons */}
{/* Filter Toggle Button */} {(selectedArtist || selectedGenres.length > 0 || yearRange[0] !== minYear || yearRange[1] !== currentYear) && ( )}
{/* Filters Panel */} {showFilters && (
{/* Year Range Filter */}
{t('common.yearRange')}: {yearRange[0]} - {yearRange[1]}
{ const val = parseInt(e.target.value); setYearRange(prev => [Math.min(val, prev[1] - 1), prev[1]]); }} style={{ flex: 1 }} /> { const val = parseInt(e.target.value); setYearRange(prev => [prev[0], Math.max(val, prev[0] + 1)]); }} style={{ flex: 1 }} />
)} {selectedArtist && ( )}
); }