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;
