another change to hopefully trigger webhook

This commit is contained in:
andrzej 2024-05-25 13:12:09 +02:00
parent 65e575f9e4
commit ea48cdb7c3
2 changed files with 149 additions and 110 deletions

View File

@ -4,7 +4,6 @@ import Calculator from "./Components/Calculator";
function App() { function App() {
return ( return (
<div className="App"> <div className="App">
I changed something else!
<Calculator /> <Calculator />
</div> </div>
); );

View File

@ -2,111 +2,150 @@ import { useState } from "react";
import KeyPad from "./KeyPad"; import KeyPad from "./KeyPad";
export default function Calculator(props) { export default function Calculator(props) {
const [main, setMain] = useState("0") const [main, setMain] = useState("0");
const [memory, setMemory] = useState("") const [memory, setMemory] = useState("");
const [operation, setOperation] = useState("") const [operation, setOperation] = useState("");
const [on, setOn] = useState(true) const [on, setOn] = useState(true);
const map = { const map = {
conc: (numberString) => { conc: (numberString) => {
if (main.length <= 9) { if (main.length <= 9) {
if (main[0] === "0") { if (main[0] === "0") {
setMain(prev => prev.slice(1) + numberString) setMain((prev) => prev.slice(1) + numberString);
} else { } else {
setMain(prev => prev + numberString) setMain((prev) => prev + numberString);
} }
} }
}, },
zero: function () { this.conc("0") }, zero: function () {
one: function () { this.conc("1") }, this.conc("0");
two: function () { this.conc("2") }, },
three: function () { this.conc("3") }, one: function () {
four: function () { this.conc("4") }, this.conc("1");
five: function () { this.conc("5") }, },
six: function () { this.conc("6") }, two: function () {
seven: function () { this.conc("7") }, this.conc("2");
eight: function () { this.conc("8") }, },
nine: function () { this.conc("9") }, three: function () {
this.conc("3");
},
four: function () {
this.conc("4");
},
five: function () {
this.conc("5");
},
six: function () {
this.conc("6");
},
seven: function () {
this.conc("7");
},
eight: function () {
this.conc("8");
},
nine: function () {
this.conc("9");
},
decimal: function () { decimal: function () {
if (!/\./g.test(main)) { if (!/\./g.test(main)) {
this.conc(".") this.conc(".");
} }
}, },
add: function () { this.rcvOperator("add") }, add: function () {
subtract: function () { this.rcvOperator("subtract") }, this.rcvOperator("add");
multiply: function () { this.rcvOperator("multiply") }, },
divide: function () { this.rcvOperator("divide") }, subtract: function () {
this.rcvOperator("subtract");
},
multiply: function () {
this.rcvOperator("multiply");
},
divide: function () {
this.rcvOperator("divide");
},
rcvOperator: function (operator) { rcvOperator: function (operator) {
if (main === "-") { if (main === "-") {
setMain("") setMain("");
} else if (main !== "") { } else if (main !== "") {
if (memory === "") { if (memory === "") {
setMemory(main) setMemory(main);
} else { } else {
setMemory(prev => { return this.calculate(main, prev) }) setMemory((prev) => {
return this.calculate(main, prev);
});
} }
setMain("") setMain("");
} }
if (main === "" && operator === "subtract") { if (main === "" && operator === "subtract") {
setMain(prev => { setMain((prev) => {
if (prev[0] !== "-") { if (prev[0] !== "-") {
return "-" + prev return "-" + prev;
} }
}) });
} else { } else {
setOperation(operator) setOperation(operator);
} }
}, },
operations: { operations: {
add: (a, b) => { return a + b }, add: (a, b) => {
subtract: (a, b) => { return b - a }, return a + b;
multiply: (a, b) => { return a * b }, },
divide: (a, b) => { return b / a }, subtract: (a, b) => {
return b - a;
},
multiply: (a, b) => {
return a * b;
},
divide: (a, b) => {
return b / a;
},
}, },
clear: () => { clear: () => {
setMain("0") setMain("0");
setMemory("") setMemory("");
setOperation("") setOperation("");
}, },
equals: function () { equals: function () {
if (operation !== "" && main !== "") { if (operation !== "" && main !== "") {
setMain(prev => { setMain((prev) => {
return this.calculate(prev, memory) return this.calculate(prev, memory);
}) });
setMemory("") setMemory("");
setOperation("") setOperation("");
} }
}, },
on: () => setOn(true), on: () => setOn(true),
off: () => { off: () => {
setOn(false) setOn(false);
setMain("0") setMain("0");
setMemory("") setMemory("");
setOperation("") setOperation("");
}, },
calculate: function (a, b) { calculate: function (a, b) {
const string = this.operations[operation](parseFloat(a), parseFloat(b)).toString() const string = this.operations[operation](
return string.length<=9?string:string.slice(0,10) parseFloat(a),
} parseFloat(b),
} ).toString();
return string.length <= 9 ? string : string.slice(0, 10);
},
};
function handleInput(content) { function handleInput(content) {
map[content]() map[content]();
} }
return ( return (
<div id="calculator"> <div id="calculator">
<div id="calculator-content"> <div id="calculator-content">
<header><h1>CALCULATOR</h1></header> <header>
<h1>CALCULATOR - CI/CD EDITION</h1>
</header>
<div id="display-container" className={on ? "on" : "off"}> <div id="display-container" className={on ? "on" : "off"}>
<p id="memory">{memory}</p> <p id="memory">{memory}</p>
<p id="display">{main}</p> <p id="display">{main}</p>
@ -115,5 +154,6 @@ export default function Calculator(props) {
<KeyPad handleInput={handleInput} /> <KeyPad handleInput={handleInput} />
</div> </div>
</div> </div>
) );
} }