@mcabreradev/filter
Version:
A powerful, SQL-like array filtering library for TypeScript and JavaScript with advanced pattern matching, MongoDB-style operators, deep object comparison, and zero dependencies
11 lines (10 loc) • 603 B
JavaScript
import { useState, useCallback } from 'react';
import { useFilterCore, useIsFiltering } from './react.utils';
export function useFilteredState(initialData = [], initialExpression = () => true, options) {
const [data, setData] = useState(initialData);
const [expression, setExpressionState] = useState(initialExpression);
const filtered = useFilterCore(data, expression, options);
const isFiltering = useIsFiltering(filtered, data);
const setExpression = useCallback((e) => setExpressionState(e), []);
return { data, setData, expression, setExpression, filtered, isFiltering };
}