Skip to content

Commit 9a3ed1e

Browse files
committed
url_param: Implement param processing methods
1 parent c96c631 commit 9a3ed1e

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/utils/filter-containers.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
1+
let filterTimeout;
2+
3+
function filterTimeoutCallback() {
4+
let newHistory = encodeURI(document.querySelector('#filter').value);
5+
history.pushState({}, '', '?filter=' + newHistory);
6+
}
7+
8+
function filterHistory() {
9+
if (typeof filterTimeout !== 'undefined') {
10+
clearTimeout(filterTimeout);
11+
}
12+
filterTimeout = setTimeout(filterTimeoutCallback, 2000);
13+
}
14+
15+
function filterMap(element) {
16+
let component = element.split('&');
17+
this[component[0]] = component[1];
18+
return this;
19+
}
20+
121
export function filterContainers() {
222

323
// Fetch DOM elements, break each word in input filter.
@@ -31,4 +51,29 @@ export function filterContainers() {
3151
containers[i].classList.add('show');
3252
}
3353
}
54+
filterHistory();
55+
}
56+
57+
export function filterOnLoad() {
58+
let filterInput = document.querySelector('#filter');
59+
if (!filterInput) {
60+
setTimeout(filterOnLoad, 1000);
61+
return;
62+
}
63+
let search = decodeURIComponent(location.search);
64+
if (!search) {
65+
return;
66+
}
67+
68+
let searchObj = search
69+
.substring(1)
70+
.split('&')
71+
.map(filterMap, {})[0];
72+
73+
if (searchObj.filter) {
74+
filterInput.value = search;
75+
console.log('about to call filterContainers');
76+
console.log(typeof filterContainers);
77+
filterContainers();
78+
}
3479
}

0 commit comments

Comments
 (0)