From 05c563cbc399e5c412d6197fb1fa3668d9330e70 Mon Sep 17 00:00:00 2001 From: Katja Lutz Date: Thu, 30 Jun 2022 17:01:14 +0200 Subject: [PATCH] feat: add quantity row to AgileCalculator and improve the layout --- src/components/AgileCalculator.tsx | 69 +++++++++++++++++------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/src/components/AgileCalculator.tsx b/src/components/AgileCalculator.tsx index 232ef29..b9c10d4 100644 --- a/src/components/AgileCalculator.tsx +++ b/src/components/AgileCalculator.tsx @@ -13,14 +13,19 @@ const AgileCalculator: Component = () => { singlePrice: 10.0, hoursPerPoint: 1, }); - const calculatorQuantity = createMemo(() => + const hours = createMemo(() => calculateAgileQuantity( - 1, + agileCalculator.hoursPerPoint, new Big(agileCalculator.risk).div(100).toNumber(), agileCalculator.minPoints, agileCalculator.maxPoints ) ); + const quantity = createMemo(() => + agileCalculator.hoursPerPoint > 0 + ? new Big(hours()).div(agileCalculator.hoursPerPoint).toNumber() + : hours() + ); return (
@@ -41,35 +46,36 @@ const AgileCalculator: Component = () => { /> !Number.isNaN(e.currentTarget.valueAsNumber) && - setAgileCalculator("hoursPerPoint", e.currentTarget.valueAsNumber) + setAgileCalculator("minPoints", e.currentTarget.valueAsNumber) } /> !Number.isNaN(e.currentTarget.valueAsNumber) && - setAgileCalculator("minPoints", e.currentTarget.valueAsNumber) + setAgileCalculator("maxPoints", e.currentTarget.valueAsNumber) } /> !Number.isNaN(e.currentTarget.valueAsNumber) && - setAgileCalculator("maxPoints", e.currentTarget.valueAsNumber) + setAgileCalculator("hoursPerPoint", e.currentTarget.valueAsNumber) } /> { } />
-
+
{"("} {new Big(-100).plus(agileCalculator.risk).abs().toNumber()}% @@ -107,37 +113,40 @@ const AgileCalculator: Component = () => { {")"} =
-
-
- Gewichtete Story Points: - {calculatorQuantity()} SP -
+
+ Gewichtete Story Points: + {quantity()} SP
-
+
- {calculatorQuantity()} SP + {quantity()} SP {" "} *{" "} {agileCalculator.hoursPerPoint} h {" "} + = +
+
+ Menge: + {hours()} h +
+
+ + {hours()} h + {" "} *{" "} {agileCalculator.singlePrice} CHF {" "} =
-
-
- Gesamtpreis: - {formatAmount( - new Big(calculatorQuantity()) - .mul(agileCalculator.hoursPerPoint) - .mul(agileCalculator.singlePrice) - .toNumber() - )}{" "} - CHF -
+
+ Gesamtpreis: + {formatAmount( + new Big(hours()).mul(agileCalculator.singlePrice).toNumber() + )}{" "} + CHF