1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-06 00:07:44 +01:00
unleash.unleash/frontend/src/hooks/useSearch.ts

160 lines
4.9 KiB
TypeScript
Raw Normal View History

import { useCallback, useMemo } from 'react';
export type IGetSearchContextOutput<T = any> = {
data: T[];
columns: any[];
searchValue: string;
};
type IUseSearchOutput<T> = {
getSearchText: (input: string) => string;
data: T[];
getSearchContext: () => IGetSearchContextOutput<T>;
};
// https://stackoverflow.com/questions/9577930/regular-expression-to-select-all-whitespace-that-isnt-in-quotes
const SPACES_WITHOUT_QUOTES = /\s+(?=(?:[^\'"]*[\'"][^\'"]*[\'"])*[^\'"]*$)/g;
const normalizeSearchValue = (value: string) =>
value.replaceAll(/\s*,\s*/g, ',');
const removeQuotes = (value: string) =>
value.replaceAll("'", '').replaceAll('"', '');
export const useSearch = <T>(
columns: any[],
searchValue: string,
data: T[],
): IUseSearchOutput<T> => {
const getSearchText = useCallback(
(value: string) =>
removeQuotes(
getSearchTextGenerator(columns)(normalizeSearchValue(value)),
),
[columns],
);
const normalizedSearchValue = normalizeSearchValue(searchValue);
const getSearchContext = useCallback(() => {
return { data, searchValue: normalizedSearchValue, columns };
}, [data, normalizedSearchValue, columns]);
const search = useMemo(() => {
if (!normalizedSearchValue) return data;
const filteredData = filter(columns, normalizedSearchValue, data);
const searchedData = searchInFilteredData(
columns,
getSearchText(normalizedSearchValue),
filteredData,
);
return searchedData;
}, [columns, normalizedSearchValue, data, getSearchText]);
return { data: search, getSearchText, getSearchContext };
};
export const filter = (columns: any[], searchValue: string, data: any[]) => {
let filteredDataSet = data;
getFilterableColumns(columns)
.filter((column) => isValidFilter(searchValue, column.filterName))
.forEach((column) => {
const values = getFilterValues(column.filterName, searchValue);
filteredDataSet = filteredDataSet.filter((row) => {
if (column.filterBy) {
return column.filterBy(row, values);
}
return defaultFilter(getColumnValues(column, row), values);
});
});
return filteredDataSet;
};
export const searchInFilteredData = <T>(
columns: any[],
searchValue: string,
filteredData: T[],
) => {
const trimmedSearchValue = searchValue.trim();
const searchableColumns = columns.filter(
(column) => column.searchable && column.accessor,
);
return filteredData.filter((row) => {
return searchableColumns.some((column) => {
if (column.searchBy) {
return column.searchBy(row, trimmedSearchValue);
}
return defaultSearch(
getColumnValues(column, row),
trimmedSearchValue,
);
});
});
};
const defaultFilter = (fieldValue: string, values: string[]) =>
values.some((value) => fieldValue?.toLowerCase() === value?.toLowerCase());
export const includesFilter = (fieldValue: string, values: string[]) =>
values.some((value) =>
fieldValue?.toLowerCase().includes(value?.toLowerCase()),
);
const defaultSearch = (fieldValue: string, value: string) =>
fieldValue?.toLowerCase().includes(value?.toLowerCase());
export const getSearchTextGenerator = (columns: any[]) => {
const filters = columns
.filter((column) => column.filterName)
.map((column) => column.filterName);
const isValidSearch = (fragment: string) => {
return filters.some((filter) => isValidFilter(fragment, filter));
};
return (searchValue: string) =>
searchValue
.split(SPACES_WITHOUT_QUOTES)
.filter((fragment) => !isValidSearch(fragment))
.join(' ');
};
export const isValidFilter = (input: string, match: string) =>
// name:"hello world" or name:'hello world' or name:simple
new RegExp(`${match}:(?:\\w+|["'][^"']+["'])`).test(input);
export const getFilterableColumns = (columns: any[]) =>
columns.filter((column) => column.filterName && column.accessor);
export const getColumnValues = (column: any, row: any) => {
const value =
typeof column.accessor === 'function'
? column.accessor(row)
: column.accessor.includes('.')
chore(deps): update dependency @biomejs/biome to v1.4.0 (#5288) [![Mend Renovate logo banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@biomejs/biome](https://biomejs.dev) ([source](https://togithub.com/biomejs/biome)) | [`1.3.3` -> `1.4.0`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.3.3/1.4.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.3.3/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.3.3/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>biomejs/biome (@&#8203;biomejs/biome)</summary> ### [`v1.4.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#140-2023-11-27) [Compare Source](https://togithub.com/biomejs/biome/compare/af24597c1877c7b5a96bb7cc59bab655a577116f...889593e3f983a6fec642d20eea3c7f94d58fc7e1) ##### CLI - Remove the CLI options from the `lsp-proxy`, as they were never meant to be passed to that command. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) - Add option `--config-path` to `lsp-proxy` and `start` commands. It's now possible to tell the Daemon server to load `biome.json` from a custom path. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) - Add new `--diagnostic-level` option to let users control the level of diagnostics printed by the CLI. Possible values are: `"info"`, `"warn"`, `"hint"`. Contributed by [@&#8203;simonxabris](https://togithub.com/simonxabris) - Add option `--line-feed` to the `format` command. Contributed by [@&#8203;SuperchupuDev](https://togithub.com/SuperchupuDev) - Add option `--bracket-same-line` to the `format` command. Contributed by [@&#8203;faultyserve](https://togithub.com/faultyserve) - Add option `--bracket-spacing` to the `format` command. Contributed by [@&#8203;faultyserve](https://togithub.com/faultyserve) ##### Bug fixes - Fix the command `format`, now it returns a non-zero exit code when if there pending diffs. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) ##### Configuration - Add option `formatter.lineFeed`. Contributed by [@&#8203;SuperchupuDev](https://togithub.com/SuperchupuDev) - Add option `javascript.formatter.bracketSameLine`. Contributed by [@&#8203;faultyserve](https://togithub.com/faultyserve) - Add option `javascript.formatter.bracketSpacing`. Contributed by [@&#8203;faultyserve](https://togithub.com/faultyserve) ##### Formatter ##### New features - Add a new option [`--line-ending`](https://biomejs.dev/reference/configuration/#formatterlineending). This option allows changing the type of line endings. Contributed by [@&#8203;SuperchupuDev](https://togithub.com/SuperchupuDev) - Added a new option called `--bracket-spacing` to the formatter. This option allows you to control whether spaces are inserted around the brackets of object literals. [#&#8203;627](https://togithub.com/biomejs/biome/issues/627). Contributed by [@&#8203;faultyserver](https://togithub.com/faultyserver) - Added a new option called `--bracket-same-line` to the formatter. This option allows you to control whether spaces are inserted around the brackets of object literals. [#&#8203;627](https://togithub.com/biomejs/biome/issues/627). Contributed by [@&#8203;faultyserver](https://togithub.com/faultyserver) ##### Bug fixes - Fix [#&#8203;832](https://togithub.com/biomejs/biome/issues/832), the formatter no longer keeps an unnecessary trailing comma in type parameter lists. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;301](https://togithub.com/biomejs/biome/issues/301), the formatter should not break before the `in` keyword. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) ##### Linter ##### Promoted rules - [a11y/noInteractiveElementToNoninteractiveRole](https://biomejs.dev/linter/rules/no-interactive-element-to-noninteractive-role) - [complexity/noThisInStatic](https://biomejs.dev/linter/rules/no-this-in-static) - [complexity/useArrowFunction](https://biomejs.dev/linter/rules/use-arrow-function) - [correctness/noEmptyCharacterClassInRegex](https://biomejs.dev/linter/rules/no-empty-character-class-in-regex) - [correctness/noInvalidNewBuiltin](https://biomejs.dev/linter/rules/no-invalid-new-builtin) - [style/noUselessElse](https://biomejs.dev/linter/rules/no-useless-else) - [style/useAsConstAssertion](https://biomejs.dev/linter/rules/use-as-const-assertion) - [style/useShorthandAssign](https://biomejs.dev/linter/rules/use-shorthand-assign) - [suspicious/noApproximativeNumericConstant](https://biomejs.dev/linter/rules/no-approximative-numeric-constant) - [suspicious/noMisleadingInstantiator](https://biomejs.dev/linter/rules/no-misleading-instantiator) - [suspicious/noMisrefactoredShorthandAssign](https://biomejs.dev/linter/rules/no-misrefactored-shorthand-assign) The following rules are now recommended: - [a11y/noAccessKey](https://biomejs.dev/linter/rules/no-access-key) - [a11y/useHeadingContent](https://biomejs.dev/linter/rules/use-heading-content) - [complexity/useSimpleNumberKeys](https://biomejs.dev/linter/use-simple-number-keys) The following rules are now deprecated: - [correctness/noNewSymbol](https://biomejs.dev/linter/rules/no-new-symbol) The rule is replaced by [correctness/noInvalidNewBuiltin](https://biomejs.dev/linter/rules/no-invalid-new-builtin) ##### New features - Add [noDefaultExport](https://biomejs.dev/linter/rules/no-default-export) which disallows `export default`. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Add [noAriaHiddenOnFocusable](https://biomejs.dev/linter/rules/no-aria-hidden-on-focusable) which reports hidden and focusable elements. Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207) - Add [noImplicitAnyLet](https://biomejs.dev/linter/rules/no-implicit-any-let) that reports variables declared with `let` and without initialization and type annotation. Contributed by [@&#8203;TaKO8Ki](https://togithub.com/TaKO8Ki) and [@&#8203;b4s36t4](https://togithub.com/b4s36t4) - Add [useAwait](https://biomejs.dev/linter/rules/use-await) that reports `async` functions that don't use an `await` expression. - Add [useValidAriaRole](https://biomejs.dev/linter/rules/use-valid-aria-role). Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207) - Add [useRegexLiterals](https://biomejs.dev/linter/use-regex-literals) that suggests turning call to the regex constructor into regex literals. COntributed by [@&#8203;Yuiki](https://togithub.com/Yuiki) ##### Enhancements - Add an unsafe code fix for [a11y/useAriaActivedescendantWithTabindex](https://biomejs.dev/linter/rules/use-aria-activedescendant-with-tabindex) ##### Bug fixes - Fix [#&#8203;639](https://togithub.com/biomejs/biome/issues/639) by ignoring unused TypeScript's mapped key. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;565](https://togithub.com/biomejs/biome/issues/565) by handling several `infer` with the same name in extends clauses of TypeScript's conditional types. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;653](https://togithub.com/biomejs/biome/issues/653). [noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports) now correctly removes the entire line where the unused `import` is. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;607](https://togithub.com/biomejs/biome/issues/609) `useExhaustiveDependencies`, ignore optional chaining, Contributed by [@&#8203;msdlisper](https://togithub.com/msdlisper) - Fix [#&#8203;676](https://togithub.com/biomejs/biome/issues/676), by using the correct node for the `"noreferrer"` when applying the code action. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) - Fix [#&#8203;455](https://togithub.com/biomejs/biome/issues/455). The CLI can now print complex emojis to the console correctly. - Fix [#&#8203;727](https://togithub.com/biomejs/biome/issues/727). [noInferrableTypes](https://biomejs.dev/linter/rules/no-inferrable-types) now correctly keeps type annotations when the initialization expression is `null`. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;784](https://togithub.com/biomejs/biome/issues/784), [noSvgWithoutTitle](https://biomejs.dev/linter/rules/no-svg-without-title) fixes false-positives to `aria-label` and reports svg's role attribute is implicit. Contributed by [@&#8203;unvalley](https://togithub.com/unvalley) - Fix [#&#8203;834](https://togithub.com/biomejs/biome/issues/834) that made [noUselessLoneBlockStatements](https://biomejs.dev/linter/rules/no-useless-lone-block-statements) reports block statements of switch clauses. Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207) - Fix [#&#8203;783](https://togithub.com/biomejs/biome/issues/834) that made [noUselessLoneBlockStatements](https://biomejs.dev/linter/rules/no-useless-lone-block-statements) reports block statements of `try-catch` structures. Contributed by [@&#8203;hougesen](https://togithub.com/hougesen) - Fix [#&#8203;69](https://togithub.com/biomejs/biome/issues/69) that made [correctness/noUnnecessaryContinue](https://biomejs.dev/linter/rules/no-unnecessary-continue) incorrectly reports a `continue` used to break a switch clause. Contributed by [@&#8203;TaKO8Ki](https://togithub.com/TaKO8Ki) - Fix [#&#8203;664](https://togithub.com/biomejs/biome/issues/664) by improving the diagnostic of [style/useNamingConvention](https://biomejs.dev/linter/use-naming-convention) when double capital are detected in strict camel case mode. Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207) - Fix [#&#8203;643](https://togithub.com/biomejs/biome/issues/643) that erroneously parsed the option of [complexity/useExhaustiveDependencies](https://biomejs.dev/linter/use-naming-convention). Contributed by [@&#8203;arendjr](https://togithub.com/arendjr) ##### Parser ##### Bug fixes - Fix [#&#8203;846](https://togithub.com/biomejs/biome/issues/846) that erroneously parsed `<const T,>() => {}` as a JSX tag instead of an arrow function when both TypeScript and JSX are enabled. ##### VSCode </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/Unleash/unleash). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Christopher Kolstad <chriswk@getunleash.io>
2023-11-28 10:32:00 +01:00
? column.accessor
.split('.')
.reduce((object: any, key: string) => object?.[key], row)
chore(deps): update dependency @biomejs/biome to v1.4.0 (#5288) [![Mend Renovate logo banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@biomejs/biome](https://biomejs.dev) ([source](https://togithub.com/biomejs/biome)) | [`1.3.3` -> `1.4.0`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.3.3/1.4.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.3.3/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.3.3/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>biomejs/biome (@&#8203;biomejs/biome)</summary> ### [`v1.4.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#140-2023-11-27) [Compare Source](https://togithub.com/biomejs/biome/compare/af24597c1877c7b5a96bb7cc59bab655a577116f...889593e3f983a6fec642d20eea3c7f94d58fc7e1) ##### CLI - Remove the CLI options from the `lsp-proxy`, as they were never meant to be passed to that command. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) - Add option `--config-path` to `lsp-proxy` and `start` commands. It's now possible to tell the Daemon server to load `biome.json` from a custom path. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) - Add new `--diagnostic-level` option to let users control the level of diagnostics printed by the CLI. Possible values are: `"info"`, `"warn"`, `"hint"`. Contributed by [@&#8203;simonxabris](https://togithub.com/simonxabris) - Add option `--line-feed` to the `format` command. Contributed by [@&#8203;SuperchupuDev](https://togithub.com/SuperchupuDev) - Add option `--bracket-same-line` to the `format` command. Contributed by [@&#8203;faultyserve](https://togithub.com/faultyserve) - Add option `--bracket-spacing` to the `format` command. Contributed by [@&#8203;faultyserve](https://togithub.com/faultyserve) ##### Bug fixes - Fix the command `format`, now it returns a non-zero exit code when if there pending diffs. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) ##### Configuration - Add option `formatter.lineFeed`. Contributed by [@&#8203;SuperchupuDev](https://togithub.com/SuperchupuDev) - Add option `javascript.formatter.bracketSameLine`. Contributed by [@&#8203;faultyserve](https://togithub.com/faultyserve) - Add option `javascript.formatter.bracketSpacing`. Contributed by [@&#8203;faultyserve](https://togithub.com/faultyserve) ##### Formatter ##### New features - Add a new option [`--line-ending`](https://biomejs.dev/reference/configuration/#formatterlineending). This option allows changing the type of line endings. Contributed by [@&#8203;SuperchupuDev](https://togithub.com/SuperchupuDev) - Added a new option called `--bracket-spacing` to the formatter. This option allows you to control whether spaces are inserted around the brackets of object literals. [#&#8203;627](https://togithub.com/biomejs/biome/issues/627). Contributed by [@&#8203;faultyserver](https://togithub.com/faultyserver) - Added a new option called `--bracket-same-line` to the formatter. This option allows you to control whether spaces are inserted around the brackets of object literals. [#&#8203;627](https://togithub.com/biomejs/biome/issues/627). Contributed by [@&#8203;faultyserver](https://togithub.com/faultyserver) ##### Bug fixes - Fix [#&#8203;832](https://togithub.com/biomejs/biome/issues/832), the formatter no longer keeps an unnecessary trailing comma in type parameter lists. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;301](https://togithub.com/biomejs/biome/issues/301), the formatter should not break before the `in` keyword. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) ##### Linter ##### Promoted rules - [a11y/noInteractiveElementToNoninteractiveRole](https://biomejs.dev/linter/rules/no-interactive-element-to-noninteractive-role) - [complexity/noThisInStatic](https://biomejs.dev/linter/rules/no-this-in-static) - [complexity/useArrowFunction](https://biomejs.dev/linter/rules/use-arrow-function) - [correctness/noEmptyCharacterClassInRegex](https://biomejs.dev/linter/rules/no-empty-character-class-in-regex) - [correctness/noInvalidNewBuiltin](https://biomejs.dev/linter/rules/no-invalid-new-builtin) - [style/noUselessElse](https://biomejs.dev/linter/rules/no-useless-else) - [style/useAsConstAssertion](https://biomejs.dev/linter/rules/use-as-const-assertion) - [style/useShorthandAssign](https://biomejs.dev/linter/rules/use-shorthand-assign) - [suspicious/noApproximativeNumericConstant](https://biomejs.dev/linter/rules/no-approximative-numeric-constant) - [suspicious/noMisleadingInstantiator](https://biomejs.dev/linter/rules/no-misleading-instantiator) - [suspicious/noMisrefactoredShorthandAssign](https://biomejs.dev/linter/rules/no-misrefactored-shorthand-assign) The following rules are now recommended: - [a11y/noAccessKey](https://biomejs.dev/linter/rules/no-access-key) - [a11y/useHeadingContent](https://biomejs.dev/linter/rules/use-heading-content) - [complexity/useSimpleNumberKeys](https://biomejs.dev/linter/use-simple-number-keys) The following rules are now deprecated: - [correctness/noNewSymbol](https://biomejs.dev/linter/rules/no-new-symbol) The rule is replaced by [correctness/noInvalidNewBuiltin](https://biomejs.dev/linter/rules/no-invalid-new-builtin) ##### New features - Add [noDefaultExport](https://biomejs.dev/linter/rules/no-default-export) which disallows `export default`. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Add [noAriaHiddenOnFocusable](https://biomejs.dev/linter/rules/no-aria-hidden-on-focusable) which reports hidden and focusable elements. Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207) - Add [noImplicitAnyLet](https://biomejs.dev/linter/rules/no-implicit-any-let) that reports variables declared with `let` and without initialization and type annotation. Contributed by [@&#8203;TaKO8Ki](https://togithub.com/TaKO8Ki) and [@&#8203;b4s36t4](https://togithub.com/b4s36t4) - Add [useAwait](https://biomejs.dev/linter/rules/use-await) that reports `async` functions that don't use an `await` expression. - Add [useValidAriaRole](https://biomejs.dev/linter/rules/use-valid-aria-role). Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207) - Add [useRegexLiterals](https://biomejs.dev/linter/use-regex-literals) that suggests turning call to the regex constructor into regex literals. COntributed by [@&#8203;Yuiki](https://togithub.com/Yuiki) ##### Enhancements - Add an unsafe code fix for [a11y/useAriaActivedescendantWithTabindex](https://biomejs.dev/linter/rules/use-aria-activedescendant-with-tabindex) ##### Bug fixes - Fix [#&#8203;639](https://togithub.com/biomejs/biome/issues/639) by ignoring unused TypeScript's mapped key. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;565](https://togithub.com/biomejs/biome/issues/565) by handling several `infer` with the same name in extends clauses of TypeScript's conditional types. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;653](https://togithub.com/biomejs/biome/issues/653). [noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports) now correctly removes the entire line where the unused `import` is. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;607](https://togithub.com/biomejs/biome/issues/609) `useExhaustiveDependencies`, ignore optional chaining, Contributed by [@&#8203;msdlisper](https://togithub.com/msdlisper) - Fix [#&#8203;676](https://togithub.com/biomejs/biome/issues/676), by using the correct node for the `"noreferrer"` when applying the code action. Contributed by [@&#8203;ematipico](https://togithub.com/ematipico) - Fix [#&#8203;455](https://togithub.com/biomejs/biome/issues/455). The CLI can now print complex emojis to the console correctly. - Fix [#&#8203;727](https://togithub.com/biomejs/biome/issues/727). [noInferrableTypes](https://biomejs.dev/linter/rules/no-inferrable-types) now correctly keeps type annotations when the initialization expression is `null`. Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos) - Fix [#&#8203;784](https://togithub.com/biomejs/biome/issues/784), [noSvgWithoutTitle](https://biomejs.dev/linter/rules/no-svg-without-title) fixes false-positives to `aria-label` and reports svg's role attribute is implicit. Contributed by [@&#8203;unvalley](https://togithub.com/unvalley) - Fix [#&#8203;834](https://togithub.com/biomejs/biome/issues/834) that made [noUselessLoneBlockStatements](https://biomejs.dev/linter/rules/no-useless-lone-block-statements) reports block statements of switch clauses. Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207) - Fix [#&#8203;783](https://togithub.com/biomejs/biome/issues/834) that made [noUselessLoneBlockStatements](https://biomejs.dev/linter/rules/no-useless-lone-block-statements) reports block statements of `try-catch` structures. Contributed by [@&#8203;hougesen](https://togithub.com/hougesen) - Fix [#&#8203;69](https://togithub.com/biomejs/biome/issues/69) that made [correctness/noUnnecessaryContinue](https://biomejs.dev/linter/rules/no-unnecessary-continue) incorrectly reports a `continue` used to break a switch clause. Contributed by [@&#8203;TaKO8Ki](https://togithub.com/TaKO8Ki) - Fix [#&#8203;664](https://togithub.com/biomejs/biome/issues/664) by improving the diagnostic of [style/useNamingConvention](https://biomejs.dev/linter/use-naming-convention) when double capital are detected in strict camel case mode. Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207) - Fix [#&#8203;643](https://togithub.com/biomejs/biome/issues/643) that erroneously parsed the option of [complexity/useExhaustiveDependencies](https://biomejs.dev/linter/use-naming-convention). Contributed by [@&#8203;arendjr](https://togithub.com/arendjr) ##### Parser ##### Bug fixes - Fix [#&#8203;846](https://togithub.com/biomejs/biome/issues/846) that erroneously parsed `<const T,>() => {}` as a JSX tag instead of an arrow function when both TypeScript and JSX are enabled. ##### VSCode </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/Unleash/unleash). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Christopher Kolstad <chriswk@getunleash.io>
2023-11-28 10:32:00 +01:00
: row[column.accessor];
if (column.filterParsing) {
return column.filterParsing(value);
}
return value;
};
export const getFilterValues = (filterName: string, searchValue: string) =>
searchValue
?.split(`${filterName}:`)[1]
?.split(SPACES_WITHOUT_QUOTES)[0]
?.split(',')
.map(removeQuotes)
.filter((value) => value) ?? [];