diff --git a/desktop/flipper-plugin/src/index.tsx b/desktop/flipper-plugin/src/index.tsx index d33b9552b..0e6ae164f 100644 --- a/desktop/flipper-plugin/src/index.tsx +++ b/desktop/flipper-plugin/src/index.tsx @@ -61,7 +61,7 @@ export {DataTable, DataTableColumn} from './ui/data-table/DataTable'; export {DataTableManager} from './ui/data-table/DataTableManager'; export { DataTable as _DataTableWithPowerSearch, - DataTableColumn as _DataColumnWithPowerSearch, + DataTableColumn as _DataTableColumnWithPowerSearch, } from './ui/data-table/DataTableWithPowerSearch'; export {DataTableManager as _DataTableWithPowerSearchManager} from './ui/data-table/DataTableWithPowerSearchManager'; export {DataList} from './ui/DataList'; diff --git a/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx b/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx index 95b03df1b..a296818be 100644 --- a/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx +++ b/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx @@ -61,7 +61,12 @@ import { _DataSourceView, } from 'flipper-plugin-core'; import {useLatestRef} from '../../utils/useLatestRef'; -import {PowerSearch, PowerSearchConfig, FieldConfig} from '../PowerSearch'; +import { + PowerSearch, + PowerSearchConfig, + FieldConfig, + OperatorConfig, +} from '../PowerSearch'; import { dataTablePowerSearchOperatorProcessorConfig, dataTablePowerSearchOperators, @@ -124,13 +129,7 @@ export type DataTableColumn = { visible?: boolean; inversed?: boolean; sortable?: boolean; - powerSearchConfig?: - | { - [K in keyof typeof dataTablePowerSearchOperators]: ReturnType< - (typeof dataTablePowerSearchOperators)[K] - >; - } - | false; + powerSearchConfig?: OperatorConfig[] | false; }; export interface TableRowRenderContext { @@ -249,7 +248,10 @@ export function DataTable( label: column.title ?? column.key, key: column.key, // If no power search config provided we treat every input as a string - operators: column.powerSearchConfig ?? { + operators: column.powerSearchConfig?.reduce((res, operatorConfig) => { + res[operatorConfig.key] = operatorConfig; + return res; + }, {} as Record) ?? { string_contains: dataTablePowerSearchOperators.string_contains(), string_not_contains: dataTablePowerSearchOperators.string_not_contains(),