Select Filter

Category

About this component

Select Filter

Single-select dropdown for long option lists that would crowd a sidebar. Supports a clear item, result counts, and a disabled state for dependent filters.

Usage

The import and the props worth knowing about, in one place.

import { FilterSelect } from "@/components/beste/component/filter-select";

<FilterSelect
  label="Category"
  placeholder="All categories"
  clearLabel="All categories"   // first item that clears the selection
  onChange={(value) => console.log("selected:", value)} // null when cleared
  options={[
    { label: "Sneakers", value: "sneakers", count: 24 },
    { label: "T-Shirts", value: "t-shirts", count: 18 },
  ]}
/>

Keyboard and gestures

Every one of these is in the component already. They are listed because a props table cannot mention a gesture, so nothing else on this page can tell you they exist.

Enter / SpaceOpen the menu.
Arrow keysMove through the options; the value follows as you go.
Type a letterJump to the next option starting with it.
EscapeClose and keep what was there before.

Props

Read from the component's own type, so this cannot drift from what it accepts.

PropTypeDefaultDescription
labelstring—Optional group heading rendered above the trigger
optionsFilterSelectOption[]—
valuestring | null—Controlled selection; omit to let the component manage its own state
defaultValuestring—Initial selection when uncontrolled
placeholderstring—Placeholder shown while nothing is selected
clearLabelstring—When set, renders a first item (e.g. "All categories") that clears the selection and reports null through onChange.
disabledboolean—
onChange(value: string | null) => void—
classNamestring—

More Filter components

View all Filter

Size

Category

24
18
9
12

Brand