"use client";
import { DEFAULT_FILTERS, type Filters } from "../lib/filterStyles";
const STATUS_OPTIONS = ["active", "supplemental", "deprecated"];
interface FilterBarProps {
filters: Filters;
onChange: (filters: Filters) => void;
types: string[];
complexities: string[];
eras: string[];
resultCount: number;
totalCount: number;
}
function FilterGroup({
label,
options,
value,
onChange,
}: {
label: string;
options: string[];
value: string;
onChange: (v: string) => void;
}) {
return (
{label}:
{options.map((opt) => (
))}
);
}
export function FilterBar({
filters,
onChange,
types,
complexities,
eras,
resultCount,
totalCount,
}: FilterBarProps) {
const hasFilters = Boolean(
filters.search ||
filters.status !== DEFAULT_FILTERS.status ||
filters.type ||
filters.complexity ||
filters.era
);
return (
onChange({ ...filters, status })}
/>
onChange({ ...filters, type })}
/>
onChange({ ...filters, complexity })}
/>
onChange({ ...filters, era })}
/>
Showing {resultCount} of {totalCount} styles
{hasFilters && (
)}
);
}