created a simple BMI calculator using React.js. Now I am trying to make it so if the result is anything other than healthy BMI the result text will be colored red (I am using styled-components). I'm struggling to figure out where I should attempt to insert it, whether in Form or Result element and what tools to use (I looked at classNames library don't really have an idea based on examples how to use it easily). Would be grateful for anyone's help. Pasting the Form and Result code as this is the most meaningful here.
Form element
const [height, setHeight] = useState();
const [weight, setWeight] = useState();
const [classification, setClassification] = useState();
const [bmi, setBmi] = useState();
const calculate = () => {
const bmi = (weight / (height / 100) ** 2).toFixed(2);
setBmi(bmi);
if (bmi < 18.5) {
setClassification("Underweight");
} else if (bmi > 18.5 && bmi <= 24.9) {
setClassification("Healthy");
} else if (bmi > 24.9 && bmi < 30) {
setClassification("Pre-obesity");
} else if (bmi < 35) {
setClassification("Obesity class I");
} else if (bmi < 40) {
setClassification("Obesity class II");
} else {
setClassification("Obesity class III");
}
};
const onSubmit = (event) => {
event.preventDefault();
calculate();
};
return (
<StyledForm onSubmit={onSubmit}>
<Formula />
<StyledTitle>Weight</StyledTitle>
<StyledInput
value={weight}
onChange={({ target }) => setWeight(target.value)}
required
min={26}
max={635}
placeholder="Enter weight in KG"
/>
<StyledTitle>Height</StyledTitle>
<StyledInput
value={height}
onChange={({ target }) => setHeight(target.value)}
required
min={54}
max={272}
placeholder="Enter height in CM"
/>
<Button />
<Result bmi={bmi} classification={classification} />
</StyledForm>
);
};
export default Form;
Result element
const Result = ({ bmi, classification }) => {
return (
<StyledResultWrapper>
<StyledResult>{bmi && <>Your BMI is {bmi}</>}</StyledResult>
<StyledResult>{classification}</StyledResult>
</StyledResultWrapper>
);
};
export default Result;
Thank you for your help.