mirror of
https://github.com/iconoir-icons/iconoir
synced 2024-06-08 08:52:19 +02:00
feat: support multiple keywords in search (#271)
This commit is contained in:
parent
b9f886b321
commit
9b38a1a3d7
|
@ -40,14 +40,18 @@ function normalizeString(s: string) {
|
|||
|
||||
function filterIcons(allIcons: Icon[], filters: IconListFilters): Icon[] {
|
||||
if (filters.search) {
|
||||
return allIcons.filter((icon) => {
|
||||
const normalSearch = normalizeString(filters.search!);
|
||||
return (
|
||||
normalizeString(icon.filename).includes(normalSearch) ||
|
||||
normalizeString(icon.category).includes(normalSearch) ||
|
||||
icon.tags.some((tag) => normalizeString(tag).includes(normalSearch))
|
||||
);
|
||||
});
|
||||
const normalSearch = normalizeString(filters.search!);
|
||||
let result = allIcons
|
||||
for (const term of normalSearch.split(' ')) {
|
||||
result = result.filter((icon) => {
|
||||
return (
|
||||
normalizeString(icon.filename).includes(term) ||
|
||||
normalizeString(icon.category).includes(term) ||
|
||||
icon.tags.some((tag) => normalizeString(tag).includes(term))
|
||||
);
|
||||
})
|
||||
}
|
||||
return result;
|
||||
} else return allIcons;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue