Browse Source

Move sorting logic inside render function

pull/1/head
Luke Childs 6 years ago
parent
commit
fe2dbee6d7
  1. 41
      js/index.js

41
js/index.js

@ -10,7 +10,26 @@ document.querySelector('.version').textContent = `v${version}`;
const table = document.querySelector('table.results');
const render = coins => {
const render = (coins, sortBy = 'marketCap') => {
let sortOrder = 'asc';
if (
table.dataset.sortBy === sortBy &&
table.dataset.sortOrder === sortOrder
) {
sortOrder = 'desc';
}
coins = coins.sort((a, b) => {
if (sortOrder === 'asc') {
return b[sortBy] - a[sortBy];
}
return a[sortBy] - b[sortBy];
});
table.dataset.sortBy = sortBy;
table.dataset.sortOrder = sortOrder;
if (coins.length > 0) {
table.innerHTML = `
<thead>
@ -50,24 +69,6 @@ getCoinData().then(coins => {
return;
}
let sortOrder = 'asc';
if (
table.dataset.sortBy === target.dataset.sort &&
table.dataset.sortOrder === sortOrder
) {
sortOrder = 'desc';
}
const orderedCoins = coins.sort((a, b) => {
if (sortOrder === 'asc') {
return b[target.dataset.sort] - a[target.dataset.sort];
}
return a[target.dataset.sort] - b[target.dataset.sort];
});
table.dataset.sortBy = target.dataset.sort;
table.dataset.sortOrder = sortOrder;
render(orderedCoins);
render(coins, target.dataset.sort);
});
});

Loading…
Cancel
Save