Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | export interface ProductSearchCandidate {
name?: string | null;
sku?: string | null;
}
const normalizeProductSearchTerm = (value: string | null | undefined): string => {
return String(value ?? '').trim().toLocaleLowerCase();
};
export const matchesProductSearch = (
product: ProductSearchCandidate,
query: string | null | undefined,
): boolean => {
const normalizedQuery = normalizeProductSearchTerm(query);
if (normalizedQuery.length < 2) {
return false;
}
const normalizedName = normalizeProductSearchTerm(product.name);
const normalizedSku = normalizeProductSearchTerm(product.sku);
return normalizedName.includes(normalizedQuery) || normalizedSku.includes(normalizedQuery);
};
|