Use reduce to find smallest and largest inputNums.

Tab shadows are now displayed using css classes
This commit is contained in:
j433866 2019-07-03 16:05:20 +01:00
parent b3fa1eaae2
commit 30a66f1441
3 changed files with 24 additions and 27 deletions

View file

@ -153,6 +153,14 @@
width: fit-content;
}
.tabs-left > li:first-child {
box-shadow: 15px 0px 15px -15px var(--primary-border-colour) inset;
}
.tabs-right > li:last-child {
box-shadow: -15px 0px 15px -15px var(--primary-border-colour) inset;
}
#input-wrapper,
#output-wrapper,
#input-wrapper > * ,

View file

@ -251,23 +251,16 @@ class TabWaiter {
tabsList.appendChild(this.createTabElement(nums[i], active, io));
}
const firstTab = tabsList.firstElementChild,
lastTab = tabsList.lastElementChild;
// Display shadows if there are tabs left / right of the displayed tabs
if (firstTab) {
if (tabsLeft) {
firstTab.style.boxShadow = "15px 0px 15px -15px var(--primary-border-colour) inset";
} else {
firstTab.style.boxShadow = "";
}
if (tabsLeft) {
tabsList.classList.add("tabs-left");
} else {
tabsList.classList.remove("tabs-left");
}
if (lastTab) {
if (tabsRight) {
lastTab.style.boxShadow = "-15px 0px 15px -15px var(--primary-border-colour) inset";
} else {
lastTab.style.boxShadow = "";
}
if (tabsRight) {
tabsList.classList.add("tabs-right");
} else {
tabsList.classList.remove("tabs-right");
}
// Show or hide the tab bar depending on how many tabs we have

View file

@ -315,13 +315,10 @@ self.getInputProgress = function(inputNum) {
* @returns {number}
*/
self.getLargestInputNum = function(inputNums) {
let max = -1;
for (let i = 0; i < inputNums.length; i++) {
// Object.keys() returns a string array, so parseInt here
const num = parseInt(inputNums[i], 10);
if (num > max) max = num;
}
return max;
return inputNums.reduce((acc, val) => {
val = parseInt(val, 10);
return val > acc ? val : acc;
}, -1);
};
/**
@ -331,11 +328,10 @@ self.getLargestInputNum = function(inputNums) {
* @returns {number}
*/
self.getSmallestInputNum = function(inputNums) {
let min = Number.MAX_SAFE_INTEGER;
for (let i = 0; i < inputNums.length; i++) {
const num = parseInt(inputNums[i], 10);
if (num < min) min = num;
}
const min = inputNums.reduce((acc, val) => {
val = parseInt(val, 10);
return val < acc ? val : acc;
}, Number.MAX_SAFE_INTEGER);
// Assume we don't have this many tabs!
if (min === Number.MAX_SAFE_INTEGER) return -1;