Advertisement
Niicksana

ButtonHolder.js

Feb 27th, 2023 (edited)
664
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import "./buttonHolder.css";
  2. import Button from "../Button/Button";
  3.  
  4. const btnValues = [
  5.     ["C", "+-", "%", "÷"],
  6.     [7, 8, 9, "x"],
  7.     [4, 5, 6, "-"],
  8.     [1, 2, 3, "+"],
  9.     [0, ".", "="],
  10. ];
  11.  
  12. const ButtonHolder = ({ functions }) => {
  13.     const { numClickHandler, signClickHandler, invertClickHandler, commaClickHandler, percentClickHandler, equalsClickHandler, resetClickHandler } = functions;
  14.  
  15.     const addButtonHandler = (btn) => {
  16.         switch (btn) {
  17.             case "C":
  18.                 resetClickHandler();
  19.                 break;
  20.             case "+-":
  21.                 invertClickHandler();
  22.                 break;
  23.             case "%":
  24.                 percentClickHandler();
  25.                 break;
  26.             case "=":
  27.                 equalsClickHandler();
  28.                 break;
  29.             case "÷":
  30.             case "x":
  31.             case "-":
  32.             case "+":
  33.                 signClickHandler(btn);
  34.                 break;
  35.             case ".":
  36.                 commaClickHandler(btn);
  37.                 break;
  38.             default:
  39.                 numClickHandler(btn);
  40.                 break;
  41.         }
  42.     }
  43.  
  44.     return (
  45.         <div className="buttonHolder">
  46.             {
  47.                 btnValues.flat().map((btn, i) => (
  48.                     <Button
  49.                         key={i}
  50.                         className={btn === "=" ? "equals" : ""}
  51.                         value={btn}
  52.                         onClick={() => addButtonHandler(btn)}
  53.                     />
  54.                 ))
  55.             }
  56.         </div>
  57.     );
  58. }
  59.  
  60. export default ButtonHolder;
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement