UNPKG

@adaptabletools/adaptable

Version:

Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

36 lines (35 loc) 1.6 kB
import * as React from 'react'; import { useAdaptable } from '../../AdaptableContext'; import { FloatingFilter } from './FloatingFilter'; import { useAdaptableFilterWrapper } from './useAdaptableFilterWrapper'; /** * This wrapper knows about predicates. * It transforms predicates in QlPredicates. */ export const AdaptableFloatingFilter = (props) => { const adaptable = useAdaptable(); const { qlPredicate, qlPredicateDefs, columnFilter, column, handlePredicateChange, handleOnChange, handleClear, } = useAdaptableFilterWrapper(props.Column.columnId, 'FilterBar'); const onClear = React.useCallback(() => { handleClear(); }, [handleClear]); const onPredicateChange = React.useCallback((newPredicate) => { handlePredicateChange(newPredicate); }, [handlePredicateChange]); if (!column) { return null; } return (React.createElement(FloatingFilter, { onKeydown: (event) => { const key = event.key; const predicate = adaptable.api.filterApi.columnFilterApi.internalApi.findPredicateDefByShortcut(key, column); if (predicate) { event.stopPropagation(); event.preventDefault(); handleOnChange([ { PredicateId: predicate.id, Inputs: [], }, ]); } }, onClear: onClear, columnId: props.Column.columnId, predicate: qlPredicate, predicateDefs: qlPredicateDefs, disabled: columnFilter?.IsSuspended, onPredicateChange: onPredicateChange })); };