@matthew.ngo/react-filter-pilot
Version:
Powerful filtering, pagination, and sorting for React with TanStack Query integration
31 lines (28 loc) • 1 kB
TypeScript
import { FetchControlConfig } from '../types/index.js';
declare function useFetchControl<TFilters>(filters: TFilters, config?: FetchControlConfig<TFilters>): {
shouldFetch: boolean;
fetchReason: string;
controlledFetch: (fetchFn: () => Promise<any>) => Promise<any>;
};
declare function useRequiredFilters<TFilters>(filters: TFilters, required: (keyof TFilters)[]): {
isValid: boolean;
missing: string[];
message: string;
};
declare function useDependentFilters<TFilters>(filters: TFilters, dependencies: Array<{
if: keyof TFilters;
equals?: any;
then: keyof TFilters | (keyof TFilters)[];
}>): {
isValid: boolean;
errors: string[];
};
declare function useFilterCombinations<TFilters>(filters: TFilters, rules: Array<{
filters: (keyof TFilters)[];
condition: 'all' | 'any' | 'none';
message?: string;
}>): {
isValid: boolean;
errors: string[];
};
export { useDependentFilters, useFetchControl, useFilterCombinations, useRequiredFilters };