@linzjs/step-ag-grid
Version:
[](https://github.com/semantic-release/semantic-release) > Reusable [ag-grid](https://www.ag-grid.com/) component for LINZ / Toitū te whenua.
17 lines (13 loc) • 595 B
text/typescript
import { useContext, useEffect } from 'react';
import { GridContext, GridFilterExternal } from '../../contexts/GridContext';
import { GridBaseRow } from '../Grid';
export const useGridFilter = <TData extends GridBaseRow>(filter: GridFilterExternal<TData> | undefined) => {
const { addExternalFilter, removeExternalFilter } = useContext(GridContext);
useEffect(() => {
const thisFilter = filter;
thisFilter && addExternalFilter(thisFilter);
return () => {
thisFilter && removeExternalFilter(thisFilter);
};
}, [addExternalFilter, filter, removeExternalFilter]);
};