analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
41 lines • 1.21 kB
TypeScript
import type { CategoryConfig } from '../../CheckBoxGroup/index';
export type FilterConfig = {
key: string;
label: string;
categories: CategoryConfig[];
};
export type UseTableFilterOptions = {
syncWithUrl?: boolean;
};
export type UseTableFilterReturn = {
filterConfigs: FilterConfig[];
activeFilters: Record<string, string[]>;
hasActiveFilters: boolean;
activeFiltersCount: number;
updateFilters: (configs: FilterConfig[]) => void;
applyFilters: () => void;
clearFilters: () => void;
};
/**
* Hook for managing table filters with URL synchronization
*
* @param initialConfigs - Initial filter configurations
* @param options - Hook options including URL sync
* @returns Filter state and management functions
*
* @example
* ```tsx
* const { filterConfigs, activeFilters, updateFilters, applyFilters } = useTableFilter(
* [
* {
* key: 'academic',
* label: 'Dados Acadêmicos',
* categories: [...]
* }
* ],
* { syncWithUrl: true }
* );
* ```
*/
export declare const useTableFilter: (initialConfigs: FilterConfig[], options?: UseTableFilterOptions) => UseTableFilterReturn;
//# sourceMappingURL=useTableFilter.d.ts.map