Create search-provider
This commit is contained in:
parent
0ca0cb34e8
commit
8c99ecb28c
|
@ -0,0 +1 @@
|
|||
{{yield (hash data=this.data)}}
|
|
@ -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,
|
||||
};
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue