Skip to content

Commit 33e764a

Browse files
committed
Improve code for exercise 7 lesson 1
1 parent d93289a commit 33e764a

2 files changed

Lines changed: 10 additions & 7 deletions

File tree

Lesson01/exercise_007/filter_and_search.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
const tagsToFilterBy = [];
2-
let textToSearch = '';
32

43
const searchBoxElement = document.querySelector('search-box');
5-
searchBoxElement.addEventListener('changed', (e) => {
6-
textToSearch = e.detail.text;
7-
applyFilters();
8-
});
4+
searchBoxElement.addEventListener('changed', (e) => applyFilters());
95

106
function addTagFilter() {
117
Array.from(document.querySelectorAll('.extra .label'))
@@ -45,7 +41,7 @@ function filterByTags(products) {
4541
}
4642

4743
function filterByText(products) {
48-
const txt = (textToSearch || '').toLowerCase();
44+
const txt = searchBoxElement.searchText.toLowerCase();
4945
return products.filter((p) => {
5046
return p.name.toLowerCase().includes(txt)
5147
|| p.description.toLowerCase().includes(txt);

Lesson01/exercise_007/search_box.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,19 @@ class SearchBox extends HTMLElement {
22
constructor() {
33
super();
44
this.attachShadow({ mode: 'open' });
5+
this._searchText = '';
6+
57
this.render();
68
this.shadowRoot.querySelector('input').addEventListener('keyup', (e) => {
7-
this.triggerTextChanged(e.target.value);
9+
this._searchText = e.target.value;
10+
this.triggerTextChanged(this._searchText);
811
});
912
}
1013

14+
get searchText() {
15+
return this._searchText;
16+
}
17+
1118
render() {
1219
this.shadowRoot.innerHTML = `
1320
<link rel="stylesheet" type="text/css" href="../css/semantic.min.css" />

0 commit comments

Comments
 (0)