-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
47 lines (39 loc) · 1.21 KB
/
app.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
import fetchFollowers from './fetchFollowers.js';
import displayFollowers from './displayFollowers.js';
import paginate from './paginate.js';
import displayButtons from './displayButtons.js';
const heading = document.querySelector('.section-title h1');
const btnContainer = document.querySelector('.btn-container');
let index = 0;
let pages = [];
const setupUI = () => {
displayFollowers(pages[index]);
displayButtons(btnContainer, pages, index);
};
const init = async () => {
// get followers
const followers = await fetchFollowers();
heading.textContent = 'pagination';
// display followers
// displayFollowers(followers);
// displayFollowers(paginate(followers)[0]);
// paginate
pages = paginate(followers);
setupUI();
};
btnContainer.addEventListener('click', (e) => {
if (e.target.classList.contains('btn-container')) return;
if (e.target.classList.contains('page-btn')) {
index = parseInt(e.target.dataset.index);
}
if (e.target.classList.contains('next-btn')) {
index++;
if (index >= pages.length) index = 0;
}
if (e.target.classList.contains('prev-btn')) {
index--;
if (index < 0) index = pages.length - 1;
}
setupUI();
});
window.addEventListener('load', init);