Add boilerplate for data table power search config and processors
Summary: Doc: https://docs.google.com/document/d/1miofxds9DJgWScj0zFyBbdpRH5Rj0T9FqiCapof5-vU/edit#heading=h.pg8svtdjlx7 Reviewed By: lblasa Differential Revision: D49230144 fbshipit-source-id: d6e6dfb340fd23c8655e331869600cb474c8e8bc
This commit is contained in:
committed by
Facebook GitHub Bot
parent
f897ab9487
commit
589937bc8f
@@ -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;
|
||||
|
||||
@@ -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<T = any> = {
|
||||
columns: DataTableColumn<T>[];
|
||||
@@ -116,7 +120,11 @@ export type DataTableColumn<T = any> = {
|
||||
visible?: boolean;
|
||||
inversed?: boolean;
|
||||
sortable?: boolean;
|
||||
powerSearchConfig?: {[key: string]: OperatorConfig};
|
||||
powerSearchConfig?: {
|
||||
[K in keyof typeof dataTablePowerSearchOperators]: ReturnType<
|
||||
(typeof dataTablePowerSearchOperators)[K]
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
export interface TableRowRenderContext<T = any> {
|
||||
@@ -369,7 +377,12 @@ export function DataTable<T extends object>(
|
||||
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,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user