From a4f395c68818edb11d2109608b89451fa9d73519 Mon Sep 17 00:00:00 2001 From: BananaBJones Date: Thu, 9 Dec 2021 02:59:29 -0700 Subject: [PATCH] all but keyboard support --- 08_calculator/calculator.js | 14 ++++++++++++++ 08_calculator/styles.css | 6 ++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/08_calculator/calculator.js b/08_calculator/calculator.js index a8ce245..597bea0 100644 --- a/08_calculator/calculator.js +++ b/08_calculator/calculator.js @@ -3,6 +3,7 @@ let operator = 0; let num1 = 0; let num2 = 0; const specialChars = ['!', '^', '*', '/', '+', '-']; +const decimal = ['.']; const add = function(num1, num2) { let sum = num1 + num2; @@ -81,6 +82,10 @@ function updateDisplay(id) { case '!': case '.': let includesSpec = specialChars.some(char => display.textContent.includes(char)); + let includesDec = display.textContent.includes('.'); + if (includesDec && id === '.') { + break; + } if (includesSpec) { let num2 = display.textContent.split(/[\/+^!-*-]/); num1 = num2[0]; @@ -131,11 +136,19 @@ function updateDisplay(id) { break; case 'equals': let num2 = display.textContent.split(/[\/+^!-*-]/); + if (!num2[1]) { + break; + } num1 = num2[0]; num1 = parseFloat(num1); num2 = num2[1]; num2 = parseFloat(num2); let answer = operate(operator, num1, num2) + if (answer === Infinity) { + display.style.fontSize = '40px'; + display.textContent = 'To infinity, and beyond!'; + break; + } display.textContent = answer; displayValue = answer; console.log('equals'); @@ -154,6 +167,7 @@ const buttons = document.querySelectorAll('.btn'); buttons.forEach((button) => { button.addEventListener('click', (e) => { // operate(button.id); + display.style.fontSize = '2em'; updateDisplay(button.id); }); }); diff --git a/08_calculator/styles.css b/08_calculator/styles.css index 777dda6..7071deb 100644 --- a/08_calculator/styles.css +++ b/08_calculator/styles.css @@ -31,18 +31,16 @@ body { display: flex; justify-content: end; align-items: center; - font-size: 2em; border-bottom: solid #E5A9A9 4px; width: 400px; height: 83px; -webkit-box-shadow: inset 0px 0px 0px 2px #000000; - box-shadow: inset 0px 0px 0px 2px #000000; - - + box-shadow: inset 0px 0px 0px 2px #000000; } .display { margin-right: 0.1em; + font-size: 2em; }