From 38d008b050a9900c56d76131b0d887b02f5e83fc Mon Sep 17 00:00:00 2001 From: Andrzej Stepien Date: Tue, 4 Jul 2023 17:01:52 +0200 Subject: [PATCH] operations callback table in Calculator --- src/Components/Calculator.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Components/Calculator.js b/src/Components/Calculator.js index b97c600..d492830 100644 --- a/src/Components/Calculator.js +++ b/src/Components/Calculator.js @@ -7,12 +7,22 @@ export default function Calculator(props){ const [memory,setMemory] = useState(0) const [operation,setOperation] = useState("") + + + - function handleInput(content){ + function handleInput(content){ + const operations = { + "+":(a,b)=>{return a+b}, + "-":(a,b)=>{return a-b}, + "X":(a,b)=>{return a*b}, + "/":(a,b)=>{return a/b}, + } + if(typeof content === "number" ){ setInput(prev=>{return prev.toString()+content.toString()}) }else{ //EXTRA CONDITION FOR DECIMAL, REGEX TO MAKE IT MAKE SENSE - setMemory(input) + setMemory(prev=>{operations[content](prev,input)}) setInput(0) setOperation(content) }