/
KnowMoreTab.js
51 lines (42 loc) · 1.28 KB
/
KnowMoreTab.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
'use strict';
class KnowMoreTab extends DrawerTab {
constructor (el, apod, drawer, index, searchCallback) {
super(el, apod, drawer);
this.items = [];
this.loader = new SunLoader();
this.index = index;
this.searchFn = searchCallback;
this.template = `
<div class='know-links'>
<div class='loading-spinner hide'>${this.loader.render()}</div>
<ul></ul>
</div>
`;
}
showLoader () {
this.baseView.querySelector('.loading-spinner').classList.remove('hide');
}
setClickListener () {
const tabs = document.getElementsByClassName(`keyword-${this.index}`);
for (let i = 0; i < tabs.length; i++) {
tabs[i].onclick = () => {
this.toggle();
this.searchFn();
}
}
}
render () {
if (!this.items.length) {
this.showLoader();
}
let links = '';
for (let i in this.items) {
let item = this.items[i];
links += `
<li>
<a href="${item.link}" target="_blank">${item.htmlTitle}</a>
</li>`;
}
this.baseView.querySelector('.know-links ul').innerHTML = links;
}
};