legacy/pairent_frontend_react/src/components/PsychTestForm/index.jsx

117 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import PsychTestQuestion from "../PsychTestQuestion";
import React, { useState } from "react";
import PsychTestAddResult from "../../API/PsychTestAddResult";
import { useNavigate } from "react-router-dom";
import "./styles/PsychTestForm.css";
const PsychTestForm = () => {
const [isValid, setIsValid] = useState(true);
const navigate = useNavigate();
const [answers, setAnswers] = useState(new Array(12));
const answerChangeHandler = (answer, account) => {
answers[account] = answer;
setAnswers(answers);
};
const submitHandler = async (event) => {
event.preventDefault();
let isTrue = true;
for (let i = 0; i < 12; i++) {
if (answers[i] == undefined) {
setIsValid(false);
isTrue = false;
}
}
if (isTrue) {
await PsychTestAddResult.addById(1, answers); // 1 - это id пользователя TODO: приделать логин систему
navigate("/");
}
};
return (
<form onSubmit={submitHandler} className="form">
<PsychTestQuestion
name="На сколько Вам важна национальность вашего соседа/соседки?"
account="0"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="Согласны ли Вы делить одну комнату с вашим соседом/соседкой?"
account="1"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="Какое число людей, снимающих квартиру (включая Вас), для вас приемлемо?"
account="2"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="На сколько вам важно такое коммуникативное качество, как общительность, в вашем соседе/соседке?"
account="3"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="На сколько вам важно такое коммуникативное качество, как эмпатия, в вашем соседе/соседке?"
account="4"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="На сколько вам важно такое коммуникативное качество, как доброжелательность, в вашем соседе/соседке?"
account="5"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="На сколько вам важно такое коммуникативное качество, как тактичность, в вашем соседе/соседке?"
account="6"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="На сколько вам важно такое личностное качество, как ответственность, в вашем соседе/соседке?"
account="7"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="На сколько вам важно такое личностное качество, как аккуратность, в вашем соседе/соседке?"
account="8"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="На сколько вам важно такое личностное качество, как честность (искренность) , в вашем соседе/соседке ?"
account="9"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="На сколько вам важно такое личностное качество, как чистоплотность , в вашем соседе/соседке ?"
account="10"
onChangeAnswer={answerChangeHandler}
/>
<PsychTestQuestion
name="На сколько вам важна такия черта характера, как трудолюбие , в вашем соседе/соседке ?"
account="11"
onChangeAnswer={answerChangeHandler}
/>
{isValid && (
<div className="btn-box">
<button className="btn-box__form-btn" type="submit">
Отправить
</button>
</div>
)}
{!isValid && (
<div className="btn-box">
<button className="btn-box__form-btn" type="submit">
Отправить
</button>
<p className="btn-box__text">
Вы не ответили на один из вопросов
</p>
</div>
)}
{/* <button type="submit">Отправить</button> */}
</form>
);
};
export default PsychTestForm;