Create search-provider

This commit is contained in:
Michael Klein 2022-10-08 13:33:55 +02:00
parent 0ca0cb34e8
commit 8c99ecb28c
2 changed files with 29 additions and 0 deletions

View File

@ -0,0 +1 @@
{{yield (hash data=this.data)}}

View File

@ -0,0 +1,28 @@
import Component from '@glimmer/component';
export default class SearchProvider extends Component {
get items() {
const { items, search, searchProperties } = this.args;
const regex = new RegExp(`${search}`, 'ig');
return items.filter((item) => {
const matchesInSearchProperties = searchProperties.reduce((acc, searchProperty) => {
const match = item[searchProperty].match(regex);
if (match) {
return [...acc, match];
} else {
return acc;
}
}, []);
return matchesInSearchProperties.length > 0;
});
}
get data() {
const { items } = this;
return {
items,
};
}
}