You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mobile/components/quiz/GoalQuestion.tsx

98 lines
2.7 KiB

import React, { useImperativeHandle } from "react";
import Question, { QuestionChildProps } from "./Question";
import Checkbox from "../CheckboxComponent";
import { View } from "react-native";
export interface GoalQuestionRef {
getAnswer: () => string[];
}
export default React.forwardRef<GoalQuestionRef, QuestionChildProps>(
({ ...props }, ref): React.ReactElement => {
const [checkedOne, setCheckedOne] = React.useState(true);
const [checkedTwo, setCheckedTwo] = React.useState(false);
const [checkedThree, setCheckedThree] = React.useState(false);
const [checkedFour, setCheckedFour] = React.useState(false);
const [checkedFive, setCheckedFive] = React.useState(false);
useImperativeHandle(ref, () => ({
getAnswer: () => {
const goals = [];
if (checkedOne) {
goals.push("Perte de poids");
}
if (checkedTwo) {
goals.push("Renforcement musculaire");
}
if (checkedThree) {
goals.push("Prise de masse");
}
if (checkedFour) {
goals.push("Amélioration endurance");
}
if (checkedFive) {
goals.push("Maintenir en forme");
}
return goals;
},
}));
const handleChangeOne = () => {
setCheckedOne(!checkedOne);
};
const handleChangeTwo = () => {
setCheckedTwo(!checkedTwo);
};
const handleChangeThree = () => {
setCheckedThree(!checkedThree);
};
const handleChangeFour = () => {
setCheckedFour(!checkedFour);
};
const handleChangeFive = () => {
setCheckedFive(!checkedFive);
};
return (
<Question
question="Quel est votre objectif dans l'application ?"
{...ref}
{...props}
>
<View>
<Checkbox
label="Perte de poids"
value={checkedOne}
onChange={handleChangeOne}
communityIcon={"weight"}
/>
<Checkbox
label="Renforcement musculaire"
value={checkedTwo}
onChange={handleChangeTwo}
antIcon={"rest"}
/>
<Checkbox
label="Prise de masse"
value={checkedThree}
onChange={handleChangeThree}
communityIcon={"beer"}
/>
<Checkbox
label="Amélioration endurance"
value={checkedFour}
onChange={handleChangeFour}
antIcon={"linechart"}
/>
<Checkbox
label="Maintenir en forme"
value={checkedFive}
onChange={handleChangeFive}
antIcon={"linechart"}
/>
</View>
</Question>
);
}
);