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