import React, { useState, useContext, useEffect } from "react"; import { useNavigate, useParams } from "react-router-dom"; import { useCookies } from "react-cookie"; import classes from "../assets/styles/viewForm.module.scss"; import { FormsData, TypeAnswerData } from "../context"; import GeneratingFormFields from "../components/GeneratingFormFields.jsx"; import MyButton from "../components/MyButton.jsx"; import { listFormBlockApi } from "../hooks/api/formApi.js"; import { listFormsApi } from "../hooks/api/listFormsApi.js"; import { responseDataToListBlock } from "../hooks/sundry/parseListBlock.js"; const ViewForm = () => { const navigate = useNavigate(); const { formId } = useParams(); const {forms, setForms} = useContext(FormsData); const {listTypeAnswer, setListTypeAnswer} = useContext(TypeAnswerData); const [cookies, _, __] = useCookies(["user"]); const [questions, setQuestions] = useState([]); const [answers, setAnswers] = useState([]); const [title, setTitle] = useState(""); useEffect(() => { async function getForm() { const responseForms = await listFormsApi(cookies.token); const responseBlocks = await listFormBlockApi(cookies.token, formId); if (responseBlocks.status === 200 && responseForms.status === 200 && responseBlocks.data) { // let responseToNewForm = {}; // const result = { // title: responseForms.data.find(item => item.id === formId).title, // questions: [], // answers: [] // } // for (let item of responseBlocks.data) { // responseToNewForm["id"] = item.id; // for (let block of item.data) { // responseToNewForm[block.Key] = block.Value // }; // result.questions.push(responseToNewForm); // result.answers.push( // {id: item.id, answer: []} // ) // responseToNewForm = {}; // }; const listBlocks = responseDataToListBlock(responseBlocks.data); setQuestions(listBlocks) setAnswers(listBlocks.map(item => ( {id: item.id, answer: []} ))) setTitle(responseForms.data.find(item => item.id === formId).title) } else { console.log(responseForms) console.log(responseBlocks) } }; getForm() }, []); function updateAnswersForm(value, id) { setAnswers( answers.map((item, i) => { if (id === i) { item.answer = value; } return item }) ) }; function saveAnswers() { // saveAnswersApi(formId, answers) // .then((resolve, _) => { // console.log(resolve) // setAnswers([]); // navigate("/"); // }) // .catch((error) => console.log(error)); setAnswers([]); navigate("/forms"); } return (