Skip to Content

SearchArea

A form-based search area with multiple filter types, URL state persistence, debounced text input, and clear/refresh functionality.

Import

import { SearchArea } from '@tidbcloud/uikit/biz'

Basic Usage

import { SearchArea } from '@tidbcloud/uikit/biz' function Demo() { const filters = [ { type: 'text', name: 'search', placeholder: 'Search...' }, { type: 'select', name: 'status', label: 'Status', data: ['Active', 'Inactive', 'Pending'] } ] return <SearchArea filters={filters} onSubmit={(values) => console.log(values)} /> }

Multiple Filter Types

import { SearchArea } from '@tidbcloud/uikit/biz' function Demo() { const filters = [ { type: 'text', name: 'keyword', placeholder: 'Search by keyword' }, { type: 'select', name: 'category', label: 'Category', data: ['All', 'Electronics', 'Clothing', 'Books'] }, { type: 'multiselect', name: 'tags', label: 'Tags', data: ['Featured', 'Sale', 'New', 'Popular'] }, { type: 'datepicker', name: 'date', label: 'Date' } ] return ( <SearchArea filters={filters} onSubmit={(values) => console.log(values)} onRefresh={() => console.log('refresh')} /> ) }

With URL Persistence

import { SearchArea } from '@tidbcloud/uikit/biz' function Demo() { const filters = [ { type: 'text', name: 'q', placeholder: 'Search...' }, { type: 'select', name: 'sort', data: ['Newest', 'Oldest', 'Popular'] } ] return <SearchArea filters={filters} persistUrl urlStateKey="filters" onSubmit={(values) => console.log(values)} /> }

With Default Values

import { SearchArea } from '@tidbcloud/uikit/biz' function Demo() { const filters = [ { type: 'text', name: 'search', placeholder: 'Search...' }, { type: 'select', name: 'status', data: ['All', 'Active', 'Inactive'] } ] return ( <SearchArea filters={filters} defaultValues={{ status: 'Active' }} onSubmit={(values) => console.log(values)} /> ) }

Time Range Picker

import { SearchArea } from '@tidbcloud/uikit/biz' function Demo() { const filters = [ { type: 'text', name: 'search', placeholder: 'Search...' }, { type: 'timerangepicker', name: 'timeRange', label: 'Time Range' } ] return <SearchArea filters={filters} onSubmit={(values) => console.log(values)} /> }

Props

PropTypeDefaultDescription
filtersFormItem[]-Array of filter definitions
persistUrlboolean-Persist state in URL
debugboolean-Enable debug mode
urlStateKeystring'__fs'URL query key for state
clearTextstring'Clear Filters'Clear button text
onSubmit(values) => void-Submit handler
onRefresh() => void-Refresh handler
defaultValuesobject-Default filter values
formPropsFormProps-Additional Form props

Filter Types

TypeDescription
textText input with debounced search
selectSingle select dropdown
multiselectMulti-select dropdown
datepickerDate picker
timerangepickerTime range picker
Last updated on