From a98a38fcc9963b31b806f84814da77fea89f6efc Mon Sep 17 00:00:00 2001 From: st_func Date: Wed, 10 Apr 2024 06:52:29 +0900 Subject: [PATCH] =?UTF-8?q?Calculator=E3=82=92=E6=96=AD=E9=9D=A2=E7=A9=8D?= =?UTF-8?q?=E8=A8=88=E7=AE=97=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 2 +- src/Calculator.tsx | 66 +++++++++++++++++++++++++++++++++------------- 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 48a93ff..5e689ec 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -6,7 +6,7 @@ import Home from "./Home"; import Calculator from "./Calculator"; const App: React.FC = () => { - const [calcMode, setCalcMode] = useState<"sum" | "product">("sum"); + const [calcMode, setCalcMode] = useState<"buildBox" | "flatBar">("flatBar"); return ( diff --git a/src/Calculator.tsx b/src/Calculator.tsx index d142702..be1c613 100644 --- a/src/Calculator.tsx +++ b/src/Calculator.tsx @@ -1,24 +1,42 @@ import React, { useState } from "react"; +import { SecBuildBox, SecFlatBar, SecSteel } from "@st-func/st-func-ts"; +import { Unit } from "@st-func/st-func-ts"; interface CalculatorProps { - calcMode: "sum" | "product"; - setCalcMode: React.Dispatch>; + calcMode: "buildBox" | "flatBar"; + setCalcMode: React.Dispatch>; } const Calculator: React.FC = ({ calcMode, setCalcMode }) => { const [num1, setNum1] = useState(""); const [num2, setNum2] = useState(""); const [num3, setNum3] = useState(""); + const [num4, setNum4] = useState(""); const [result, setResult] = useState(undefined); const handleCalculation = () => { - if (calcMode === "sum") { - const sum = parseFloat(num1) + parseFloat(num2) + parseFloat(num3); - setResult(sum); - } else if (calcMode === "product") { - const product = parseFloat(num1) * parseFloat(num2); - setResult(product); + let secSteel: SecSteel; + if (calcMode === "buildBox") { + const secBuildBox: SecBuildBox = new SecBuildBox(); + secBuildBox.setDimensions( + Unit.input(parseFloat(num1), "mm"), + Unit.input(parseFloat(num2), "mm"), + Unit.input(parseFloat(num3), "mm"), + Unit.input(parseFloat(num4), "mm") + ); + secSteel = secBuildBox; + } else if (calcMode === "flatBar") { + const secFlatBar: SecFlatBar = new SecFlatBar(); + secFlatBar.setDimensions( + Unit.input(parseFloat(num1), "mm"), + Unit.input(parseFloat(num2), "mm") + ); + secSteel = secFlatBar; + } else { + secSteel = new SecSteel(); } + let result: number = Unit.output(secSteel.area(), "mm^2"); + setResult(result); }; return ( @@ -28,10 +46,12 @@ const Calculator: React.FC = ({ calcMode, setCalcMode }) => {
@@ -50,14 +70,24 @@ const Calculator: React.FC = ({ calcMode, setCalcMode }) => { onChange={(e) => setNum2(e.target.value)} />
- {calcMode === "sum" && ( + {calcMode === "buildBox" && (
- - setNum3(e.target.value)} - /> +
+ + setNum3(e.target.value)} + /> +
+
+ + setNum4(e.target.value)} + /> +
)}