From 802d44c5a7b80eb5b872645873f59f6c204761d1 Mon Sep 17 00:00:00 2001 From: Adebayo Ilerioluwa Date: Fri, 7 Feb 2025 10:38:42 +0100 Subject: [PATCH] chore: technical code review --- chi-checkout-web-demo/src/code-review.tsx | 51 +++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 chi-checkout-web-demo/src/code-review.tsx diff --git a/chi-checkout-web-demo/src/code-review.tsx b/chi-checkout-web-demo/src/code-review.tsx new file mode 100644 index 0000000..913047b --- /dev/null +++ b/chi-checkout-web-demo/src/code-review.tsx @@ -0,0 +1,51 @@ +'use client' + +import React, { useState, useEffect, useMemo, useCallback } from 'react'; + +const BMICalculator = () => { + const [weight, setWeight] = useState(null); + const [height, setHeight] = useState(null); + const [bmi, setBMI] = useState(null); + + useEffect(() => { + setBMI(weight / (height * height)); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [weight]); + + const onWeightChange = useCallback((event: React.ChangeEvent) => { + setWeight(Number(event.target.value)); + }, [setWeight]); + + const onHeightChange = useCallback((event: React.ChangeEvent) => { + setHeight(Number(event.target.value)); + setBMI(weight / (height * height)); + }, [setHeight, height, weight]); + + return useMemo(() => ( +
+

BMI Calculator

+
+ + +
+
+ + +
+
+ BMI: {bmi} +
+
+ +
+
), + [weight, height, bmi, onHeightChange, onWeightChange] + ); +}; + +export default BMICalculator;