Add string_contains operator
Summary: Doc: https://docs.google.com/document/d/1miofxds9DJgWScj0zFyBbdpRH5Rj0T9FqiCapof5-vU/edit#heading=h.pg8svtdjlx7 Reviewed By: lblasa Differential Revision: D49226934 fbshipit-source-id: 12d43334e87b0fb502173143d5a19a48cd2fc9ee
This commit is contained in:
committed by
Facebook GitHub Bot
parent
589937bc8f
commit
ceac388eed
@@ -11,16 +11,27 @@ import {OperatorConfig} from '../PowerSearch';
|
|||||||
|
|
||||||
export type PowerSearchOperatorProcessor = (
|
export type PowerSearchOperatorProcessor = (
|
||||||
powerSearchOperatorConfig: OperatorConfig,
|
powerSearchOperatorConfig: OperatorConfig,
|
||||||
|
searchValue: any,
|
||||||
value: any,
|
value: any,
|
||||||
) => boolean;
|
) => boolean;
|
||||||
|
|
||||||
export type PowerSearchOperatorProcessorConfig = {
|
export const dataTablePowerSearchOperators = {
|
||||||
[key: string]: PowerSearchOperatorProcessor;
|
string_contains: () => ({
|
||||||
};
|
label: 'contains',
|
||||||
|
key: 'string_contains',
|
||||||
export const dataTablePowerSearchOperators = {} satisfies {
|
valueType: 'STRING',
|
||||||
|
}),
|
||||||
|
} satisfies {
|
||||||
[key: string]: (...args: any[]) => OperatorConfig;
|
[key: string]: (...args: any[]) => OperatorConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const dataTablePowerSearchOperatorProcessorConfig =
|
export type PowerSearchOperatorProcessorConfig = {
|
||||||
{} satisfies PowerSearchOperatorProcessorConfig;
|
[K in keyof typeof dataTablePowerSearchOperators]: PowerSearchOperatorProcessor;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const dataTablePowerSearchOperatorProcessorConfig = {
|
||||||
|
string_contains: (operator, searchValue, value) =>
|
||||||
|
(value as string)
|
||||||
|
.toLowerCase()
|
||||||
|
.includes((searchValue as string).toLowerCase()),
|
||||||
|
} satisfies PowerSearchOperatorProcessorConfig;
|
||||||
|
|||||||
@@ -494,7 +494,10 @@ export function computeDataTableFilter(
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const processor = powerSearchProcessors[searchTerm.operator.key];
|
const processor =
|
||||||
|
powerSearchProcessors[
|
||||||
|
searchTerm.operator.key as keyof typeof powerSearchProcessors
|
||||||
|
];
|
||||||
if (!processor) {
|
if (!processor) {
|
||||||
console.warn(
|
console.warn(
|
||||||
'computeDataTableFilter -> processor at searchTerm.operator.key is not recognized',
|
'computeDataTableFilter -> processor at searchTerm.operator.key is not recognized',
|
||||||
@@ -504,7 +507,7 @@ export function computeDataTableFilter(
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return processor(searchTerm.operator, value);
|
return processor(searchTerm.operator, searchTerm.searchValue, value);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user