AkiFilter
Akifilter is a schema-driven filter component that provides a powerful, declarative way to build filter interfaces.
Installation
pnpm add @akinon/akifilterBasic Usage
import { Akifilter, filterField, type AkifilterSchema } from '@akinon/akifilter';
interface FilterValues {
name: string;
status: string;
createdAt: Date | null;
}
const filterSchema: AkifilterSchema<FilterValues> = [
filterField<FilterValues>()
.key('name')
.type('text')
.label('Name')
.placeholder('Search by name...')
.visible()
.build(),
filterField<FilterValues>()
.key('status')
.type('select')
.label('Status')
.placeholder('Select status')
.options([
{ label: 'Active', value: 'active' },
{ label: 'Inactive', value: 'inactive' },
{ label: 'Pending', value: 'pending' }
])
.visible()
.build(),
filterField<FilterValues>()
.key('createdAt')
.type('date')
.label('Created Date')
.placeholder('Select date')
.build()
];
export const ProductFilters = () => {
const handleValuesChange = (values: Partial<FilterValues>) => {
console.log('Filter values changed:', values);
// Fetch data with new filter values
};
return (
<Akifilter
filterSchema={filterSchema}
onValuesChange={handleValuesChange}
storageNamespace="products"
/>
);
};Props
Prop
Type
Description
Filter Field Builder
Field Types
Text Field
Number Field
Select Field
Date Field
Date with Time
Checkbox Field
Textarea Field
Custom Field
Field Visibility
Conditional Field Configuration
Section Fields
Persistence
Applied Filters
Visibility Modal
Import Actions
Complete Example
Internationalization
Best Practices
Last updated
Was this helpful?

