From f357a587963458f1edfec09bbe4ae52f5de77317 Mon Sep 17 00:00:00 2001 From: LuckyTigerr <80285545+LuckyTigerr@users.noreply.github.com> Date: Wed, 27 Sep 2023 01:18:35 +0300 Subject: [PATCH 1/4] Add few buttons --- index.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 6088c850..8b1fee82 100644 --- a/index.html +++ b/index.html @@ -31,31 +31,36 @@

Calculator

- +
+ +
+
+
+
From 431e052d2a271ef27f979294b0d91bda80bb7ee9 Mon Sep 17 00:00:00 2001 From: LuckyTigerr <80285545+LuckyTigerr@users.noreply.github.com> Date: Wed, 27 Sep 2023 01:20:19 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=A8ncreased=20the=20container=20width=20?= =?UTF-8?q?darkMode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- styles/dark.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/styles/dark.css b/styles/dark.css index 0fe1e6d1..6b32495b 100644 --- a/styles/dark.css +++ b/styles/dark.css @@ -29,7 +29,7 @@ h1 { } .container { - width: 350px; + width: 450px; display: flex; justify-content: center; flex-direction: column; @@ -97,4 +97,4 @@ a { .theme-button { all: unset; cursor: pointer; -} \ No newline at end of file +} From 49e1d4d6abb912b18f5039c177d5d200af084acc Mon Sep 17 00:00:00 2001 From: LuckyTigerr <80285545+LuckyTigerr@users.noreply.github.com> Date: Wed, 27 Sep 2023 01:20:41 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=A8ncreased=20the=20container=20width=20?= =?UTF-8?q?lightMode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- styles/light.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/styles/light.css b/styles/light.css index 218ca857..960ada55 100644 --- a/styles/light.css +++ b/styles/light.css @@ -25,7 +25,7 @@ h1 { } .container { - width: 350px; + width: 450px; display: flex; justify-content: center; flex-direction: column; @@ -96,4 +96,4 @@ a { .theme-button { all: unset; cursor: pointer; -} \ No newline at end of file +} From 4519e87dab39bb6cfb134f7fadd4b183014117f4 Mon Sep 17 00:00:00 2001 From: LuckyTigerr <80285545+LuckyTigerr@users.noreply.github.com> Date: Wed, 27 Sep 2023 01:21:03 +0300 Subject: [PATCH 4/4] Add new functions --- scripts/script.js | 57 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/scripts/script.js b/scripts/script.js index 67931195..60ff9ad9 100644 --- a/scripts/script.js +++ b/scripts/script.js @@ -4,9 +4,14 @@ const sunIcon = "assets/SunIcon.svg"; const moonIcon = "assets/MoonIcon.svg"; const themeIcon = document.getElementById("theme-icon"); const res = document.getElementById("result"); +var lastNumber = ""; +var currentNumber = ""; +var isPositive = true; const toast = document.getElementById("toast"); function calculate(value) { + value = value.replace('²',"**2") + value = value.replace("--",'+') const calculatedValue = eval(value || null); if (isNaN(calculatedValue)) { res.value = "Can't divide 0 with 0"; @@ -16,6 +21,10 @@ function calculate(value) { } else { res.value = calculatedValue; } + lastNumber = currentNumber; + currentNumber = ""; + res.value += enteredValue; + isPositive = true } // Swaps the stylesheet to achieve dark mode. @@ -40,7 +49,33 @@ function liveScreen(enteredValue) { if (!res.value) { res.value = ""; } - res.value += enteredValue; + + if(enteredValue == '+' || enteredValue == '-' || enteredValue == '*' || enteredValue == '/'){ + lastNumber = currentNumber; + currentNumber = ""; + res.value += enteredValue; + isPositive = true + } + else if(enteredValue == 'C'){ + lastNumber = "" + currentNumber = "" + res.value = '' + isPositive = true + } + else if(enteredValue == '+/-'){ + res.value = res.value.substring(0, res.value.length - currentNumber.length - (!isPositive ? 1 : 0)); + res.value += currentNumber * (isPositive ? -1 : 1); + isPositive = !isPositive; + } + else if(enteredValue != '%'){ + currentNumber += enteredValue + res.value += enteredValue; + } + else { + res.value = res.value.substring(0, res.value.length - currentNumber.length); + enteredValue = lastNumber / 100 * currentNumber * (isPositive ? -1 : 1); + res.value += enteredValue; + } } //adding event handler on the document to handle keyboard inputs @@ -81,12 +116,28 @@ function keyboardInputHandler(e) { //operators if (e.key === "+") { res.value += "+"; + lastNumber = currentNumber; + currentNumber = ""; + res.value += enteredValue; + isPositive = true } else if (e.key === "-") { res.value += "-"; + lastNumber = currentNumber; + currentNumber = ""; + res.value += enteredValue; + isPositive = true } else if (e.key === "*") { res.value += "*"; + lastNumber = currentNumber; + currentNumber = ""; + res.value += enteredValue; + isPositive = true } else if (e.key === "/") { res.value += "/"; + lastNumber = currentNumber; + currentNumber = ""; + res.value += enteredValue; + isPositive = true } //decimal key @@ -97,6 +148,10 @@ function keyboardInputHandler(e) { //press enter to see result if (e.key === "Enter") { calculate(result.value); + lastNumber = currentNumber; + currentNumber = ""; + res.value += enteredValue; + isPositive = true } //backspace for removing the last input