From c8fc3e6b827e4e3a845548e7e4497b010761cf9c Mon Sep 17 00:00:00 2001 From: Andrey Goncharov Date: Thu, 5 Oct 2023 03:54:29 -0700 Subject: [PATCH] If not option is matched, treat it as a whole row search predicate Summary: See prev diffs Reviewed By: lblasa Differential Revision: D49948976 fbshipit-source-id: 177fd4b90449c78975b6a21c50a781789425b34e --- .../data-table/DataTableWithPowerSearch.tsx | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx b/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx index fbdbb97a5..7c2e08d9d 100644 --- a/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx +++ b/desktop/flipper-plugin/src/ui/data-table/DataTableWithPowerSearch.tsx @@ -106,6 +106,18 @@ type DataTableBaseProps = { enablePowerSearchWholeRowSearch?: boolean; }; +const powerSearchConfigEntireRow: FieldConfig = { + label: 'Row', + key: 'entireRow', + operators: { + searializable_object_contains: + dataTablePowerSearchOperators.searializable_object_contains(), + searializable_object_not_contains: + dataTablePowerSearchOperators.searializable_object_not_contains(), + }, + useWholeRow: true, +}; + export type ItemRenderer = ( item: T, selected: boolean, @@ -255,17 +267,7 @@ export function DataTable( const res: PowerSearchConfig = {fields: {}}; if (props.enablePowerSearchWholeRowSearch) { - res.fields.entireRow = { - label: 'Row', - key: 'entireRow', - operators: { - searializable_object_contains: - dataTablePowerSearchOperators.searializable_object_contains(), - searializable_object_not_contains: - dataTablePowerSearchOperators.searializable_object_not_contains(), - }, - useWholeRow: true, - }; + res.fields.entireRow = powerSearchConfigEntireRow; } for (const column of columns) { @@ -675,6 +677,16 @@ export function DataTable( onSearchExpressionChange={(newSearchExpression) => { tableManager.setSearchExpression(newSearchExpression); }} + onConfirmUnknownOption={ + props.enablePowerSearchWholeRowSearch + ? (searchValue) => ({ + field: powerSearchConfigEntireRow, + operator: + dataTablePowerSearchOperators.searializable_object_contains(), + searchValue, + }) + : undefined + } /> {contexMenu && (