'use client';
import { ServiceStatus } from '@/src/types/service';
interface FilterBarProps {
categories: string[];
statuses: ServiceStatus[];
selectedCategories: string[];
selectedStatuses: ServiceStatus[];
onCategoryChange: (category: string) => void;
onStatusChange: (status: ServiceStatus) => void;
onReset: () => void;
}
/**
* FilterBar - Filterleiste zum Filtern von Services nach Kategorie und Status
* @param categories - Verfügbare Kategorien
* @param statuses - Verfügbare Status
* @param selectedCategories - Aktuell ausgewählte Kategorien
* @param selectedStatuses - Aktuell ausgewählte Status
* @param onCategoryChange - Callback beim Ändern einer Kategorie
* @param onStatusChange - Callback beim Ändern eines Status
* @param onReset - Callback zum Zurücksetzen aller Filter
*/
export function FilterBar({
categories,
statuses,
selectedCategories,
selectedStatuses,
onCategoryChange,
onStatusChange,
onReset,
}: FilterBarProps) {
const hasActiveFilters =
selectedCategories.length > 0 || selectedStatuses.length > 0;
return (
{/* Kategorie Filter */}
Kategorie
{categories.map((category) => (
))}
{/* Status Filter */}
Status
{statuses.map((status) => (
))}
{/* Reset Button */}
{hasActiveFilters && (
{selectedCategories.length + selectedStatuses.length} Filter aktiv
)}
);
}