diff --git a/desktop/flipper-plugin/src/ui/data-table/DataTableDefaultPowerSearchOperators.tsx b/desktop/flipper-plugin/src/ui/data-table/DataTableDefaultPowerSearchOperators.tsx index f1fb27f9c..36248e3fa 100644 --- a/desktop/flipper-plugin/src/ui/data-table/DataTableDefaultPowerSearchOperators.tsx +++ b/desktop/flipper-plugin/src/ui/data-table/DataTableDefaultPowerSearchOperators.tsx @@ -17,3 +17,10 @@ export type PowerSearchOperatorProcessor = ( export type PowerSearchOperatorProcessorConfig = { [key: string]: PowerSearchOperatorProcessor; }; + +export const dataTablePowerSearchOperators = {} satisfies { + [key: string]: (...args: any[]) => OperatorConfig; +}; + +export const dataTablePowerSearchOperatorProcessorConfig = + {} satisfies PowerSearchOperatorProcessorConfig; diff --git a/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx b/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx index 05675e6d9..0d9ab49e8 100644 --- a/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx +++ b/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx @@ -58,6 +58,10 @@ import { import {useLatestRef} from '../../utils/useLatestRef'; import {PowerSearch, OperatorConfig} from '../PowerSearch'; import {powerSearchExampleConfig} from '../PowerSearch/PowerSearchExampleConfig'; +import { + dataTablePowerSearchOperatorProcessorConfig, + dataTablePowerSearchOperators, +} from './DataTableDefaultPowerSearchOperators'; type DataTableBaseProps = { columns: DataTableColumn[]; @@ -116,7 +120,11 @@ export type DataTableColumn = { visible?: boolean; inversed?: boolean; sortable?: boolean; - powerSearchConfig?: {[key: string]: OperatorConfig}; + powerSearchConfig?: { + [K in keyof typeof dataTablePowerSearchOperators]: ReturnType< + (typeof dataTablePowerSearchOperators)[K] + >; + }; }; export interface TableRowRenderContext { @@ -369,7 +377,12 @@ export function DataTable( tableState.selection.current >= 0 ? dataView.getEntry(tableState.selection.current) : null; - dataView.setFilter(computeDataTableFilter(tableState.searchExpression, {})); + dataView.setFilter( + computeDataTableFilter( + tableState.searchExpression, + dataTablePowerSearchOperatorProcessorConfig, + ), + ); dataView.setFilterExpections( tableState.filterExceptions as T[keyof T][] | undefined, );